Returns a random fractional number greater than or equal to 0 and less than the value of EXPR. (EXPR should be positive.) If EXPR is omitted, the value 1 is used.
my $num1 = rand(); # Random float at least 0 and below 1
my $num2 = rand(7); # Random float at least 0 and below 7
my $num3 = int(rand(10)); # Random integer at least 0 and below 10
Notes:
Calling rand automatically calls srand unless srand has already been called.
Currently EXPR with the value 0 is special-cased as 1. This was undocumented before Perl 5.8.0 and is subject to change in future versions of Perl.
As of Perl v5.20.0 rand() uses the drand48 pseudorandom number generator to generate random numbers. As a PRNG drand48 should be sufficient for most non-cryptographic needs. If you need cryptographic random numbers check CPAN for crypto safe alternatives.