=over =item rand EXPR X<rand> X<random> =item rand Returns a random fractional number greater than or equal to C<0> and B<less> than the value of EXPR. (EXPR should be positive.) If EXPR is omitted, the value C<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 B<Notes:> =over =item * Calling C<rand> automatically calls L<C<srand>|/srand EXPR> unless srand has already been called. =item * Currently EXPR with the value C<0> is special-cased as C<1>. This was undocumented before Perl 5.8.0 and is subject to change in future versions of Perl. =item * As of Perl v5.20.0 C<rand()> uses the C<drand48> pseudorandom number generator to generate random numbers. As a PRNG C<drand48> should be sufficient for most non-cryptographic needs. If you need cryptographic random numbers check CPAN for crypto safe alternatives. =back =over =item B<Security:> B<L<C<rand>|/rand EXPR> is not cryptographically secure. You should not rely on it in security-sensitive situations.> As of this writing, a number of third-party CPAN modules offer random number generators intended by their authors to be cryptographically secure, including: =back =over =item * L<Data::Entropy> =item * L<Crypt::Random> =item * L<Math::Random::Secure> =item * L<Math::TrulyRandom> =back =back