randomRotation[n_]:=Module[{},​​z=RandomVariate[NormalDistribution[0,1],{n,n}];​​{q,r}=QRDecomposition[z];​​d=Diagonal[r];​​ph=d/Abs[d];​​q*ph​​];​​​​n=3;​​points=Table[randomRotation[n].{0,0,1},{10^4}];​​Graphics3D[{{Gray,PointSize[Small],Point[points]},{Red,Thick,Arrow[{{0,0,0},{0,0,1}}]}},AxesTrue]​​{x,y,z}=Transpose@points;​​ϕ=ArcTan[y/x];​​Histogram[#,20,PDF]&/@{ϕ,x}​​DistributionFitTest[Transpose[{ϕ,z}],UniformDistribution[{{-Pi/2,Pi/2},{-1,1}}]]

-1.0
-0.5
0.0
0.5
1.0
1.5
0.00
0.05
0.10
0.15
0.20
0.25
0.30
0.35
,
-0.5
0.0
0.5
1.0
0.0
0.1
0.2
0.3
0.4
0.5

0.576551
randomRotation2[n_]:=Module[{},​​z=IdentityMatrix[3]+0.1RandomVariate[NormalDistribution[0,1],{n,n}];​​{q,r}=QRDecomposition[z];​​d=Diagonal[r];​​ph=d/Abs[d];​​q*ph​​];​​​​n=3;​​points=Table[randomRotation2[n].{0,0,1},{10^4}];​​Graphics3D[{{Gray,PointSize[Small],Point[points]},{Red,Thick,Arrow[{{0,0,0},{0,0,1}}]}},AxesTrue]​​{x,y,z}=Transpose@points;​​ϕ=ArcTan[y/x];​​Histogram[#,20,PDF]&/@{ϕ,x}​​DistributionFitTest[Transpose[{ϕ,z}],UniformDistribution[{{-Pi/2,Pi/2},{-1,1}}]]