Para el volumen yo diría que el simlest algoritmo sería un estándar de aceptar-rechazar algoritmo.
(1) draw a uniform random point within an n-dimensional hypercube
(2) repeat (1) if the distance exceeds $r$, otherwise done
si no estoy equivocado, aunque, aceptar tasas de descenso del $n$ aumenta, tal vez hay algo más eficiente
editar
usted también puede encontrar algunas ideas aquí: Recoger puntos al azar en el volumen de la esfera con el uniforme de probabilidad
edit2 gracias a @torpe para señalar que mi sugerencia para dibujar distribuidos de manera uniforme los ángulos no es un método válido para obtener puntos en la superficie