乱数とは何か
乱数とは「予測できない数値」をプログラムで作り出す仕組みです。サイコロを振ったり、くじ引きをしたりするような「ランダムな結果」をコンピュータで再現するために使います。JavaScriptでは Math.random() を使うことで乱数を生成できます。
基本の使い方
Math.random() は 0以上1未満の小数 を返します。
つまり、0.0 から 0.999… の範囲でランダムな値が出てきます。
console.log(Math.random()); // 例: 0.372...
console.log(Math.random()); // 例: 0.918...
JavaScript毎回違う値が出るので、予測できません。
整数の乱数を作る方法
0から指定した数までの整数
Math.random() に数を掛けて Math.floor() で切り捨てると、整数の乱数が作れます。
const randN = (n) => Math.floor(Math.random() * n);
console.log(randN(6)); // 0〜5 の整数
JavaScript特定の範囲の整数
aからbまでの整数を作りたいときは次のようにします。
const randInt = (a, b) => Math.floor(Math.random() * (b - a + 1)) + a;
console.log(randInt(10, 15)); // 10〜15 の整数
JavaScript応用例
サイコロを振る
const dice = Math.floor(Math.random() * 6) + 1;
console.log(dice); // 1〜6 の整数
JavaScript配列からランダムに選ぶ
const colors = ["red", "green", "blue"];
const pick = colors[Math.floor(Math.random() * colors.length)];
console.log(pick); // "red" または "green" または "blue"
JavaScriptくじ引き(当たり確率を設定)
const lottery = () => Math.random() < 0.1 ? "当たり" : "はずれ";
console.log(lottery()); // 10%の確率で「当たり」
JavaScript注意点
乱数は完全にランダムではない
Math.random() は「疑似乱数」と呼ばれるもので、見た目はランダムですが内部では計算式に基づいています。ゲームや簡単な抽選には十分ですが、暗号やセキュリティ用途には専用の仕組みが必要です。
範囲指定の計算に注意
整数乱数を作るときに「+1」を忘れると、上限の値が含まれなくなります。例えばサイコロなら Math.floor(Math.random() * 6) + 1 と書かないと 1〜6 になりません。
まとめ
Math.random()は 0以上1未満の乱数を返す。- 整数の乱数は
Math.floor(Math.random() * n)で作れる。 - 範囲指定は
(b - a + 1)を掛けてから+ a。 - サイコロ、くじ引き、ランダム選択などに応用できる。
乱数を使えるようになると、ゲームやシミュレーションなど「予測できない動き」をプログラムに取り入れられるようになります。
