erlang の rand モジュールか random モジュールを使う。random モジュールは昔からあるもので、rand モジュールは v18 で追加された。rand が使えない場合のみ random を使う。
rand モジュール
:rand.uniform #=> 0.0 以上 1.0 以下の float :rand.uniform(100) #=> 1 以上 100 以下の integer
seed は自動的に設定される。
注意すべきは uniform に整数 N を渡したとき、1 以上 N 以下の整数が返ってくること。他の言語では 0 以上 N-1 以下が返ってくることが多い。
random モジュール
:random.seed(:erlang.now) :random.uniform #=> 0.0 以上 1.0 以下の float :random.uniform(100) #=> 1 以上 100 以下の integer
rand モジュールと違い :random.seed を明示的に呼ばないと、定数が設定され毎回同じ順番で乱数が生成される。