Punto aleatorio en una esfera determinada

Quiero seleccionar puntos aleatorios en una esfera determinada. Esta página lo explica bastante bien:

http: //mathworld.wolfram.com/SpherePointPicking.htm ("Para obtener puntos tales que cualquier área pequeña en la esfera ...")

Pero no estoy completamente seguro de si lo estoy implementando correctamente en JavaScript, ya que tengo pocos medios para probarlo correctamente:

var u = random();
var v = random();
var angle1 = 2 * Math.PI * u;
var angle2 = Math.pow(Math.cos (2 * v - 1), -1);
X = X0 + (radius * Math.sin(angle1) * Math.cos(angle2));
Y = Y0 + (radius * Math.sin(angle1) * Math.sin(angle1));
Z = Z0 + (radius * Math.cos(angle1));

Estoy especialmente inseguro sobre si entendí ese cos (-1) correctamente, lo que implementé como "El coseno a la potencia de -1".

Respuestas a la pregunta(2)

Su respuesta a la pregunta