How to generate a random point on a spherical surface
It is actually more difficult than what you think.
One naive algorithm is:
(1) Think of the sphere as the earth and give it a fixed north pole and south pole and a fixed arch as zero longitude.
(2) Choose a uniformly distributed angle between [0, 2pi] as the longitude of the new point and a uniformly distributed angle between [0, pi] as its latitude.
You might think, through this method, the chosen point is randomly distributed on the spherical surface. However, it turns out this method is wrong! It would give more probability on the poles than on the equator.

