JavaScript ランダム
1. JavaScript Math.random() の基本
Math.random() は、0(含める)から 1(含めない)の間のランダムな数値を返します。
例
// ランダムな数値を返します
Math.random();2. JavaScript でのランダムな整数 (Random Integers)
Math.random() と Math.floor() を組み合わせることで、小数点以下のない整数(Integer)を生成できます。
JavaScript には厳密な意味での「整数型」は存在しません。ここでは、小数点を持たない数値として扱います。
例
// 0 から 9 までのランダムな整数を返します(両方を含める)
Math.floor(Math.random() * 10);2.1 ロジックの解説
Math.random(): 0(含める)から 1(含めない)の間の浮動小数点数を返します(例: 0.0, 0.237, 0.9999 など。ただし 1 になることはありません)。Math.random() * 10: 0 以上 10 未満の範囲の値を返します(例: 0.0, 3.5, 9.99 など)。Math.floor(): 数値を最も近い整数に切り捨てます(例: 3.5 は 3 に、9.99 は 9 に、0.1 は 0 になります)。- その結果、得られる整数の範囲は 0 から 9(両方を含める)となります。つまり、範囲は
[0, 9]です。
3. 様々な範囲の整数生成例
用途に合わせて、乗算する数値や加算する数値を調整します。
例:0 から 10 までの整数(両方を含める)
Math.floor(Math.random() * 11);例:0 から 99 までの整数(両方を含める)
Math.floor(Math.random() * 100);例:0 から 100 までの整数(両方を含める)
Math.floor(Math.random() * 101);例:1 から 10 までの整数(両方を含める)
Math.floor(Math.random() * 10) + 1;3.1 1 から 10 までのロジック解説
Math.random() * 10は 0 以上 10 未満の数値を返します。- それに 1 を加算することで、範囲が 1 以上 11 未満にシフトします。
Math.floor()で切り捨てることで、結果として 1 から 10 の整数が得られます。
例:1 から 100 までの整数(両方を含める)
Math.floor(Math.random() * 100) + 1;4. ランダム生成のまとめ表
以下の表は、各式の実行結果の範囲をまとめたものです。
| 式 (Expression) | 最小値 (Range from) | 最大値 (Range to) |
|---|---|---|
Math.random() | 0 | 1 未満 |
Math.random() * 10 | 0 | 10 未満 |
Math.random() * 100 | 0 | 100 未満 |
Math.floor(Math.random() * 10) | 0 | 9 |
Math.floor(Math.random() * 11) | 0 | 10 |
Math.floor(Math.random() * 10) + 1 | 1 | 10 |
5. 汎用的なランダム関数
上記の例からわかる通り、あらゆる整数のランダム生成に対応できる汎用的なファンクションを作成しておくと便利です。
5.1 最小値(含める)から最大値(含めない)の範囲
この JavaScript 関数は、常に min(含める)から max(含めない)の間のランダムな整数を返します。
例
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min) ) + min;
}5.2 最小値(含める)から最大値(含める)の範囲
この JavaScript 関数は、常に min から max(両方を含める)の間のランダムな整数を返します。
例
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min + 1) ) + min;
}