If someone wants a random point on the sphere, there is a quite effective way. It is possible to calculate only 3 (transcendental) functions:

sin( theta ), cos( theta ), sqrt( ), instead of 4 ones:

sin( theta ), cos( theta ), sin( phi ), cos( phi ). Here it is.

` const float z = Rand::get( -1.0f, 1.0f ); // get random float point in range [-1.0, +1.0]`

const float t = Rand::get( 0.0f, F_2PI ); // get random float point in range [ 0.0, 2 * PI]

const float r = sqrt ( 1 - z * z ); // square root

const float x = r * cos ( t );

const float y = r * sin ( t );

m_points.push_back( Point3( RADIUS * x, RADIUS * y, RADIUS * z ) );

......................