【JavaScript】乱数を生成する方法

JavaScriptで乱数を生成するには、標準のMath.random()メソッドを使用します。このメソッドは0以上1未満の範囲でランダムな浮動小数点数を生成します。以下に具体的な例を示します。

スポンサーリンク

0以上1未満の乱数を生成

まず、0以上1未満の乱数を生成する方法を見てみましょう。

let randomNum = Math.random();
console.log(randomNum); // 例: 0.123456789

このコードを実行すると、0以上1未満のランダムな浮動小数点数がコンソールに表示されます。

任意の範囲の整数を生成

次に、任意の範囲の整数を生成する方法です。例えば、1から100までの整数を生成する場合は以下となります。

let min = 1;
let max = 100;
let randomInt = Math.floor(Math.random() * (max - min + 1)) + min;
console.log(randomInt); // 例: 42

このコードでは、Math.random()で生成された数を希望の範囲にスケーリングし、最小値を加えて整数に変換しています。

任意の範囲の浮動小数点数を生成

最後に、任意の範囲の浮動小数点数を生成する方法です。例えば、5.0から10.0までの浮動小数点数を生成する場合は以下となります。

let min = 5.0;
let max = 10.0;
let randomFloat = Math.random() * (max - min) + min;
console.log(randomFloat); // 例: 7.23456789

このコードでは、希望の範囲にスケーリングし、最小値を加えることで任意の範囲の浮動小数点数を生成します。

よくある質問(FAQ)

Q. JavaScriptでランダムな整数を生成するには?
A. Math.floor(Math.random() * (max – min + 1)) + minで指定範囲の整数が得られます。例:1〜6のサイコロはMath.floor(Math.random() * 6) + 1です。
Q. ランダムなIDや識別子を生成するには?
A. crypto.randomUUID()でUUID v4形式のランダムIDが生成できます(モダンブラウザ・Node.js対応)。簡易版はMath.random().toString(36).slice(2)で英数字のランダム文字列を生成できます。
Q. 配列をランダムにシャッフルするには?
A. Fisher-Yatesアルゴリズムを使います。array.sort(() => Math.random() – 0.5)は実装が簡単ですが分布が偏ることがあります。確率的な正確さが必要な場合はFisher-Yatesを使ってください。

まとめ

JavaScriptで乱数を生成するには、Math.random()メソッドが非常に便利です。整数や浮動小数点数の範囲を指定して、希望する形式の乱数を生成するためにスケーリングとシフトを行います。これらの方法を使用して、様々なシナリオで乱数を活用してください。