rand

ランダムな数値を生成する

構文

解説

rand は 0 以上 EXPR より小さい範囲のランダムな数値を生成します。 EXPR は 0 より大きい数値でなければいけません。 EXPR が 0 または EXPR が省略されたら 1 が適用されます。

print rand 10;    # 4.09123772130446 (呼び出すたびに異なる値になる)

rand は、もし事前に srand が呼び出されなかったら、 自動的に srand を事前に実行します。

randint と組み合わせて、 特定の範囲の中からランダムな整数を抽出するために良く使われます。 次のコードは 0 ~ 9 の範囲からランダムな整数を取り出します。

print int(rand 10);    # 0 ~ 9 の範囲からランダムな整数を取り出す

抽出されるランダム整数には rand に引き渡した整数は含まれない点に注意してください。 もし 0 ~ 10 の範囲でランダムな整数を取り出したい場合は int(rand 11) とします。

なお、rand は暗号という観点からは安全ではありません。 セキュリティ的に信頼できる乱数を生成したいなら rand を使わないでください。 そのような目的であれば、Data::Entropy, Crypt::Random, Math::Random::Secure, Math::TrulyRandom などが役に立つでしょう。