more useful options  
PerlMonks 
Answer: How do I get random numbers that follow standard distribution?by grackle (Acolyte) 
on Aug 09, 2000 at 07:41 UTC ( #26946=categorized answer: print w/replies, xml )  Need Help?? 
Q&A > math > How do I get random numbers that follow standard distribution?  Answer contributed by grackle
The question posted asks for a nonmodule solution,
and an excellent one was provided by lhoward and
tilly. Here is
a solution using a CPAN module.
I looked for Math::Random on CPAN and couldn't find it. There are modules for random numbers, such as Crypt::TrulyRandom, but I believe they will only give you better uniformly distributed random variables (correct me if I'm wrong). For a normal distribution, you can use Math::CDF (Cumulative Distribution Functions). The relevant function is Math::CDF::qnorm(), which will give you what you want when fed a random number x, 0<x<1, with a uniform distribution (i.e., what you get from rand()). (It supposedly returns a value for the inputs x=1 and x=0, but I don't know what those values could be, you'll have to try it). So the function you want is: $myrand = qnorm(rand()); (or replace rand() with your function of choice). One caveat: I don't know how the Math::CDF module calculates these values. If it provides more precision than you need, it could be a big waste of processing time. In that case lhoward and tilly's solution, summing several random variables, works fine. It would be nice to have bounds for the errors, but I can't help you there. Calculate, experiment, or find a reference.... Perhaps this would be a good place to post the results.

