ちょっと、ランダムな向きのベクトルを生成する必要があったので調べてみた。
さすがStackOverFlow。すぐあった。
正規分布で各要素を得て正規化すればいいということらしい。
distribution - random unit vector in multi-dimensional space - Stack Overflow
詳しい説明は ここを見ろってあったけど、よくわからない・・・
Hypersphere Point Picking -- from Wolfram MathWorld
とりあえずJavaのコードのように書くとこう。
var r = new Random(); return new Vector3D(r.nextGaussian(), r.nextGaussian(), r.nextGaussian()).normalize();