=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