For those interested in this problem, a while back I wrote a blog post listing all the well-known ways of correctly generating random points on the surface (or inside) of a d-dimensional sphere.
It includes all the frequently used ones as well as some lesser know elegant methods.
http://extremelearning.com.au/how-to-generate-uniformly-rand...