Probability of a point lying between two other points on a line segment On a line segment AB, 3 points - X, Y and Z are chosen at random. What is the probability that Z lies between X and Y?
 A: If there is no measurable probability of a tie, then one of the three points will lie between the other two.   You are looking for the probability that that one is $Z$.
If by "chosen at random" you mean "selected with an identical and independent uniform distribution", then you may use symmetry to find the answer.
A: If $AB$ is the length of the line segment and
$XY$ is the length between $X$ and $Y$
then the probability that $Z$ lies between $X$ and $Y$ is
$$P = \frac{XY}{AB}$$ 
Is this answer sufficient for you?
A: I've tried in vain to see the symmetry argument mentioned here.
Given existing points $x$ and $y$ along the line, if $Z$ is uniformly distributed then the chance of $z$ being inside those two is the relative length of the segment $|x-y|$ compared to the total length of the line. If $z$ lands between $x$ and $y$, then we have a "hit", but if $z$ lands outside those two, we have a "miss". Set the length of the line to 1 and then compute the expected value of that length with
$$
E(|X-Y|)=\int_0^1 p(y)\int_0^1 p(x) |x-y|dx\;dy
$$
Assuming uniformity, the probability densities $p(x)=p(y)=1$, so we just have to integrate $\int_0^1\int_0^1|x-y|dx dy$. To do this, split the $x$ integral into $\int_0^y(y-x)dx+\int_y^1(x-y)dx$. I will omit the details, but the end result of the usual integration is $1/3$.
The following numerical simulation will confirm that result:
package main

import (
    "fmt"
    "math/rand"
    "time"
)

func main() {
    rand.Seed(time.Now().UnixNano())
    var x [3]float64
    hit := 0
    total := 10000000
    for q := 0; q < total; q++ {
        for i := 0; i < 3; i++ {
            x[i] = rand.Float64()
        }
        if x[0] < x[1] {
            if x[2] < x[1] && x[2] > x[0] {
                hit++
            }
        } else {
            if x[2] < x[0] && x[2] > x[1] {
                hit++
            }
        }
    }
    fmt.Printf("%d %d %.2f\n", hit, total, float64(hit)/float64(total))
}

You can run it in your browser here.
