Random normalised variable generation

I want to generate 8 random variables (in reality to form 4 complex numbers) such that the sum of the 8 variables squared is equal to unity. The aim of generating such numbers is to perform a quantum simulation of 4 qubits (thus the 8 parameters). I've been trying to use RandomVariate[NormalDistribution[]], but I'm not quite sure how to satisfy the constraint previously described.

• If you needed to do this by hand (and not with Carl's answer), the approach is similar. Just think of a circle. You randomly choose an angle [0,2Pi] and then you calculate the point on the circle with {Cos[phi],Sin[phi]}. This automatically has your condition. Now you extend this into 8 dimensions. May 31, 2018 at 16:12

You can use RandomPoint of a Sphere:

SeedRandom[1]
RandomPoint[Sphere[{0,0,0,0,0,0,0,0}]]
Norm @ %


{0.218453, 0.184026, 0.117791, 0.285912, 0.694608, 0.304419, 0.0587873, \ 0.494151}

1.

• RandomPoint @ Sphere @ 8 is shorter.
– kglr
Jun 1, 2018 at 5:25