JavaScriptで乱数を取得する方法について書いています。
JavaScriptでランダムな数値を取得したいときには、Math.randomメソッドを使うと良いです。
乱数を取得する方法
乱数を取得したいときには、Math.randomメソッドを使います。
const randomNumber = Math.random()
console.log(randomNumber) // 0.597926415555333
最初にrandomNumber
定数を作って、「Math.random()
」を呼びだしてランダムな値を返しています。
「Math.random()
」で返されるのは、0以上で1未満の範囲の小数を返します。
上記を実行すると、実行するたびに変わりますが「0.597926415555333
」が返ってきました。
0から10の乱数が欲しい
先ほどのように「Math.random()
」では小数が返ってきますが、そのまま使うことはあまりないかと思います。
例えば、0から10のランダムな数が欲しい場合です。
0以上で1未満の範囲の数値が返ってくるので、10倍すると小数点がずれて、1桁のランダムな数値が取れます。
「0.0123...
」のような数も返ってくる可能性があるため、取得できるのは0から9のランダムな数です。
下記のようになります。
const randomNumber = Math.random() * 10
console.log(randomNumber) // 7.262173772143495
今回は、0から10のランダムな値が欲しいので、11を掛けます。
ランダムな値が「0.999...
」などになったときに11を掛けることで、10を超えます。
後は、Math.floorメソッドを使って、小数を切り捨てればOKです。
下記ようにすると、0から10のランダム値が取得できます。
const randomNumber = Math.floor(Math.random() * 11)
console.log(randomNumber) // 6
指定した範囲の乱数が欲しい
最小値と最大値を指定して、その範囲の乱数が欲しいときです。
その場合は、下記のように求めます。
const max = 6
const min = 1
const randomNumber = Math.floor(Math.random() * (max - min) + min)
console.log(randomNumber) // 3
最初にmax
・min
の定数を作って、6と1を代入しました。
こうすると、最小値が1
で最大値が5
までのランダムな値を取ることになります。
次の行で、計算して取得した乱数をrandomNumber
変数に格納して出力しました。
結果、1から5までの乱数が出力されます。
最大値(max
)未満になるので、注意してください。
乱数でおみくじプログラムを作る
最後に乱数を使って、おみくじのプログラムを書いてみます。
const texts = ['大凶', '凶', '末吉', '小吉', '中吉', '吉', '大吉']
const randomNumber = Math.floor(Math.random() * 7)
const luckText = texts[randomNumber];
console.log(`あなたは「${luckText}」です。`); // あなたは「大吉」です。
最初に、おみくじで表示するテキストの配列を作っています。
次の処理で、Math.randomメソッドに7をかけています。
そして、Math.floorで小数点を切り捨てて、0から6の値を取得してきます。
取得したランダム値を使って、配列から値を取ることで、ランダムな配列の値が取得できます。
出力すると「あなたは「大吉」です。
」となりました。(ランダムに表示されます)
終わりに
今回はJavaScriptで乱数を取得する方法について書きました。
記事の内容をまとめると、下記になります。
・Math.randomでは0以上で1未満の値しか返ってこない。(`0 〜 0.999…`)
・取得したい値に11を掛けて、Math.floorで小数を切り捨てると0から10が取得できる。
・最小値と最大値の範囲で指定したいときには、「`Math.floor(Math.random() * (max – min) + min)`」を使う。
コメント