乱数を生成する

# rand

(PHP 4, PHP 5, PHP 7)

rand — 乱数を生成する

### 説明

rand ( void ) : int
rand ( int `$min` , int `$max` ) : int

オプションの引数 `min`,`max` を省略してコールした場合、rand() は 0 と getrandmax() の間の擬似乱数(整数)を返します。 例えば、5 から 15 まで（両端を含む）の乱数を得たい場合、 rand(5, 15) とします。

警告

この関数が生成する値は、暗号学的に安全ではありません。そのため、これを暗号として使ってはいけません。暗号学的に安全な値が必要な場合は、random_int() か random_bytes() あるいは openssl_random_pseudo_bytes() を使いましょう。

> 注意: （Windows のような）いくつかのプラットフォームでは、getrandmax() は 32767 と小さな値となっています。 32767 より広い範囲にしたい場合、 `min` および `max` を指定することで、 これより大きな範囲の乱数を生成することができます。 もしくは、 mt_rand() をかわりに使用してみてください。

> 注意: PHP 7.1.0 以降、rand() は、 mt_rand() と同じ乱数生成器を使います。 下位互換性を保持するために、rand() allows `max` to be smaller than `min` as opposed to returning `FALSE` as mt_rand().

### パラメータ

`min`

  返す値の最小値 (デフォルトは 0)。

`max`

  返す値の最大値 (デフォルトは getrandmax())。

### 返り値

`min` (あるいは 0) から `max` (あるいは getrandmax()、それぞれ端点を含む) までの間の疑似乱数値を返します。

### 変更履歴

バージョン | 説明
--- | ---
7.1.0 | rand() は、mt_rand() のエイリアスになりました。

### 例

例1 rand() の例

`<?php
echo rand() . "\n";
echo rand() . "\n";
echo rand(5, 15);
?>`

上の例の出力は、 たとえば以下のようになります。

    7771
    22264
    11

### 注意

警告

`min` から `max` までの幅を mt_getrandmax() の範囲内におさめる必要があります。 つまり、(`max` - `min`) <= mt_getrandmax() でなければいけないということです。この範囲をこえてしまうと、 rand() が返す値のランダム性が、 低品質になってしまいます。

### 参考

- srand() - 乱数生成器を初期化する
- getrandmax() - 乱数の最大値を取得する
- mt_rand() - メルセンヌ・ツイスター乱数生成器を介して乱数値を生成する
- random_int() - Generates cryptographically secure pseudo-random integers
- random_bytes() - Generates cryptographically secure pseudo-random bytes
- openssl_random_pseudo_bytes() - 疑似乱数のバイト文字列を生成する