例えば、ランダムに違うコンテンツを出しわけたいときがあるとします。
1のときはA、2のときはB、それ以外ならCを出したいといったときです。
JavaScriptでだし分ける方法もありますが、それだとブラウザでの処理になるので、SEO的によくなかったり、ページ速度に影響が出たりします。
そんなときはサーバーサイド(ここではPHP)で乱数を発生させて、数値に応じて出しわけます。
rand ( 最小値 , 最大値 ) ;
最小値=乱数を発生させたい最小の数値を入れます。
最大値=乱数を発生させたい最大の数値を入れます。
例えば
rand(1,3);
とすると1、2、3のどれかが返ってきます。
なお、mt_rand()は同じ使い方ですが、PHP7.1未満では違うアルゴリズムで乱数を生成していました。
mt_rand()の方が速度が早いという記事が多いですが、PHP7.1以上ではrand()がmt_rand()のエイリアスとなりました。
つまり、PHP7.1以上の環境であればどちらも同じ動きになります。
rand();
両方ともいれないと、デフォルト値になります。
デフォルト
最小値=0
最大値=getrandmax()を出力した時の数字
つまり環境によって最大値が異なるということになります。
とてつもない数字の乱数を使いたい場合は注意が必要です。
なお、乱数は暗号やパスワードには不向きなので、そういう用途には使わないようにしましょう。