空間内の1点から一様かつランダムに放射する線の生成

ある1点から一様かつランダムに放射する線を生成する問題を考えます.
問題の設定として放射される線の方向だけを考えることにします.放射される線の長さは別の独立した乱数分布から与えられるものとします.
この問題設定では単位長さの線の放射のみを考えればよいことになります(つまり生成する線の方向余弦のみを考慮する).
まず,平面(2次元)の場合は非常に簡単です.

theta = 2 * PI * rand();
x = cos(theta);
y = sin(theta);

ここでPIは円周率,rand()は[0, 1)の一様な(擬似)実数乱数とします.以下も同じ表記を使います.上は原点からの放射ですが,任意の点からの放射への一般化は簡単です.以下でも原点からの放射のみを考えます.
さて,ここで空間内(3次元)の原点からランダムかつ一様に放射する単位長さの線の生成という問題を考えます.この問題,直感に反して意外に難しくなります.さてどうすればよいでしょうか?また4次元以上の超高次元空間での一般化はどうなるでしょうか?
to be continued