Corrected for a rare case when the cylindrical unit vector function failed. For example r=(1,1,1) and zAxis=(1,1,1) would have resulted in a failure since vec would also have been (1,1,1). vec is now a truly random vector and the probabilty that one gets the exact same vector is 0 for a pseudo random number generator.
Corrected for a rare case when the cylindrical unit vector function failed. For example r=(1,1,1) and zAxis=(1,1,1) would have resulted in a failure since vec would also have been (1,1,1). vec is now a truly random vector and the probabilty that one gets the exact same vector is 0 for a pseudo random number generator.

mzemp/iof