Elegir n números con suma fija

En algún código quiero elegirn números aleatorios en[0,1) que suma a1.

Lo hago eligiendo los números de forma independiente en[0,1) y normalizándolos dividiendo cada uno por la suma total:

numbers = [random() for i in range(n)]
numbers = [n/sum(numbers) for n in numbers]

Mi "problema" es que la distribución que salgo es bastante sesgada. Al elegir un millón de números, ninguno se supera1/2. Por algún esfuerzo he calculado el pdf, y no es bueno.

Aquí está el pdf de aspecto extraño que obtengo para 5 variables:

¿Tiene una idea para un buen algoritmo para elegir los números, que resulte en una distribución más uniforme o simple?

Respuestas a la pregunta(3)

Su respuesta a la pregunta