無駄と文化

実用的ブログ

JavaScript で、指定した範囲の整数をランダムに返す関数

やっていきましょう。

実装

/**
 * 指定した範囲の整数をランダムに取得する
 * 
 * @param {number} min ランダムに取得したい整数の下限
 * @param {number} max ランダムに取得したい整数の上限
 * @returns {number} min 以上 max 以下の整数
 */
function randomInt(min, max) {
  var interval = max - min + 1;

  return ~~(Math.random() * interval + min);
}

試運転

{
  const min = 1;
  const max = 5;
  const n   = 1000000;

  // 集計バケツの生成と初期化
  const bucket = Object.create(null);
  for (let i = min; i <= max ; i++) {
    bucket[i] = 0;
  }

  // 試運転
  for (let j = 0; j < n; j++) {
    bucket[randomInt(min, max)]++;
  }

  console.table(bucket);
}

結果

(index) Value
1 199287
2 199771
3 200078
4 200415
5 200449

まとめ

はい、


私からは以上です。