JavaScriptでの乱数メモ

さくっと乱数が欲しい時にいつも方法を忘れるのでメモ。

  • Math.randomは0以上1未満のNumberを返す。
  • 0以上4未満の乱数を得たければMath.random() * 4とする。整数として欲しければMath.floorを使う。
    • 3以上7未満は0以上4(=7-3)未満に3を足せばOK。
  • 0以上4以下の場合は?
    • 整数でよければ5未満と同じなのでMath.floor(Math.random() * 5)でOK。
    • 整数でない場合、例えば0以上4.5以下とかは?Math.random() * 4.5では4.5にならない。
      • 4.5 * 100000 = 4500000なので、4500000以下の整数にしてから100000で割ればある程度の値が得られる。精度気にしなくていいならこの程度でOK。
// min以上max未満
function rnd1(min, max) {
  return min + Math.random() * (max - min);
}

// min以上max以下(整数)
function rnd2(min, max) {
  return min + Math.floor(Math.random() * (max - min + 1));
}

// min以上max以下(小数)
function rnd3(min, max) {
  return min + Math.floor(Math.random() * ((max - min) * 100000 + 1)) / 100000;
}