# Random uniform selection of point on hypersurface

How can I randomly select a point $\vec p=\langle p_1,p_2,p_3...p_n\rangle$ such that all coordinates $p_i$ are between $0$ and $1$, and $$\sum_{i=1}^n\ p_i = 1$$ Notice that $\vec p$ lies on a hyperplane. I want the distribution of points on this hyperplane to be uniform. Specifically, the distribution an individual value $p_i$ should follow the probability density function $P(x)=(n-1)(1-x)^{n-2}$ when $0\leq x\leq 1$

One way to generate a point that follows this distribution is to repeatedly generate $n-1$ coordinates $p_1,p_2, ... p_{n-1}$ independent of each other with a uniform distribution in the range $[0,1]$ until finding a set of $n-1$ values whose sum is less than 1. The final value is easy to calculate: $$p_n=1-\sum_{i=1}^{n-1}\ p_i$$ Although the issue with this approach is that the average the number of initial sets of $n-1$ coordinates that have to be generated before finding one that works grows exponentially, and so this method wouldn't work before the heat death of the universe for $n>100$

• In other words, you want a uniformly random probability distribution on a finite set? – Lorenzo Apr 23 '17 at 3:10
• Wouldn't it be a uniformly random probability distribution on an infinite set? – J. Antonio Perez Apr 23 '17 at 3:11
• Oh I thought $n$ was fixed. – Lorenzo Apr 23 '17 at 3:12
• Arg... $n$ is fixed, but you're selecting a point from an infinite set of possible points. – J. Antonio Perez Apr 23 '17 at 3:17
• I might be missing something, but is this not answered by uniformly drawing from a probability simplex? – user3658307 Apr 23 '17 at 16:35