範囲指定のできるランダムな整数を返すスクリプトです。
引数に与えた値のmin
以上、max
以下の値を返します。
関数本体
const randRange = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);
解説
Math.random() * (max - min + 1) + min
min
の値を基準として、そこにランダムな増減値を加算する、というような計算方法です。
ランダムな増減値は、max - min
で増減する幅をもとめて、そこに1
を足して、Math.random()
関数の0以上1未満のランダムな値と掛け合わせることで表現することができます。
これで取り出せた値を Math.floor()
関数で小数点以下を切り捨てて、整数値を取り出しています。
呼び出し
console.log(randRange(10, 100));
// ランダムな10以上、100以下の整数
おまけ
ES5で記述したやつ。
var randRange = function (min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
};
ちなみにこの+1
の部分を取りはずすと、「max
未満」の値を返すランダム関数になります。
おわります。