Another way is to generate a random vector:
#local vResult=vrotate(x,<rand(Seed),rand(Seed),rand(Seed)>*360);
#if(vdot(vResult,vN)<0)
#local vResult=-vResult;
#end
Basically, generate a random vector, and if it's in the wrong
hemisphere, flip its direction.
Regards,
John