JavaScriptで乱数生成

JavaScriptで乱数を生成する場合、たいていはMath関数を使います。

具体的にはMath.random()という関数を使うことになります。

Math.random()

 

このままだと、0~1の間の少数がランダムで生成され、桁数も多くて扱いづらいです。

そこで、以下のように乱数の幅を固定します。

Math.floor(Math.random()*6)+1

Math.random()で生成された数値に6を掛けることで、通常生成される0~1の少数が0~5の幅に広がります。

あとは、Math.floor()で小数部分を切り捨てます。

具体的には以下のような感じ。

  • 0.1→0.6→0
  • 0.2→1.2→1
  • 0.3→1.8→1
  • 0.4→2.4→2
  • 0.5→3.0→3
  • 0.6→3.6→3
  • 0.7→4.2→4
  • 0.8→4.8→4
  • 0.9→5.4→5

サイコロなんかの場合は1~6の出目がありますので、Math.random()を6倍し、0~5になる揺れ幅に+1して1~6とします。

 

要するに、6分の1の乱数を生成したい場合は6倍、100分の1の乱数を生成したい場合は100倍にすれば良いわけです。

あとは、生成される乱数が0から始まることを考慮し、実際に使いたい値となるよう加減することになります。

 

たまに使うときに毎回調べてる気がするのでメモ。