=over =item rand EXPR X X =item rand Returns a random fractional number greater than or equal to C<0> and B 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 =over =item * Calling C automatically calls L|/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 uses the C pseudorandom number generator (PRNG) to generate numbers that appear random but are deterministic. It is sufficient for games, generating test data or cases where repeatability is needed. =back =over =item B B is not suitable for anything related to security, authentication or encryption.> Do not use it for generating passwords, session ids, authentication tokens, salts, or encryption keys. The return values are predictable, and systems that rely on C are easily broken. A number of third-party CPAN modules offer access to system sources of randomness, or random number generators that are suitable for security purposes, including: =back =over =item * L =item * L =item * L =back =back