There's an asymmetry because members of O(n) include rotation with random angle and flips with random axis, for $n=2$, the fraction of flips is large, those are $-1,1$ peaks. For larger $n$, bulk of matrices are pure rotations. Flipping sign of first row makes eigenvalue distribution uniform: [![enter image description here][2]][2] ``` negateFirstRow[A_] := {-A[[1, All]]}~Join~A[[2 ;;, All]]; sampleO[n_] := RandomVariate[CircularRealMatrixDistribution[n]]; sampleSO[n_] := With[{mat = RandomVariate[CircularRealMatrixDistribution[n]]}, If[Det[mat] > 0, mat, negateFirstRow@mat]]; n = 4; numSamples = 100000; SF = StringForm; label = SF["Eigenvalues for O(``)", n]; Histogram[Arg /@ Flatten[Table[Eigenvalues@sampleO@n, {numSamples}]], PlotLabel -> label, AxesLabel -> {"arg", "freq"}] label = SF["Eigenvalues for SO(``)", n]; Histogram[Arg /@ Flatten[Table[Eigenvalues@sampleSO@n, {numSamples}]], PlotLabel -> label, AxesLabel -> {"arg", "freq"}] ``` [1]: https://i.sstatic.net/JCSAwL2C.png [2]: https://i.sstatic.net/4BYrMNLj.png