JavaScript

【JavaScript】乱数(ランダム)を生成する方法(Math.random)

takahide

おはようございます。タカヒデです。

本日は、「JavaScriptにおける、『乱数(ランダム)の生成』について、『Math.randomメソッド』」を紹介します。

こんな人にオススメ
  • JavaScriptにおける『乱数(ランダム)の生成』が理解できない
  • 『Math.randomメソッド』の記載方法を知りたい

ぜひ本記事を参考にしてください。

乱数(ランダム)の生成(Math.randomメソッド)

  • 1~10のランダムな数字を作りたいなー。
  • おみくじの結果をランダムに生成したいなー。

こんな時に使うものが乱数です。

初学者が初めてサンプルアプリを作る場合、ほとんどの方が使ったことがあるのではないでしょうか?

このような乱数を生成する場合、『Math.randomメソッド』を使用します。

//記載方法

Math.random()

以下が記載例です。

console.log(Math.random());

//実行結果:0.7712676515883793

ただし、『Math.randomメソッド』で生成される乱数は「0以上1未満」です。

このような『小数』で生成されるため注意が必要です。

では、整数で使用するためにはどうすればよいのでしょうか?

その方法は次の項目で説明していきます。

Math.randomメソッドの使用例

小数の乱数を生成してもそのままでは使用しづらいですよね。

「0.24780163」みたいな数字が生成されても何に使えばいいんだ…

そんな気持ちになることでしょう。

そんなあなたのために、Math.randomメソッドを使用する例を紹介します。

ここでは、以下3つの例を紹介します。

  1. 0~5の整数で乱数を生成
  2. 10~20の間の整数で乱数を生成
  3. 配列の要素をランダムで取得

【使用例①】0~5の整数で乱数を生成

まずは、「0~5の整数で乱数を生成する方法」です。

以下が記載例です。

console.log(Math.floor(Math.random() * 6));

//実行結果:4

『Math.random()』に『生成したい数+1』したものを掛けます。

今回なら5までにしたいので、「*6」をしています。

また、そのままでは小数点以下も表示されてしまうため、『Math.floorメソッド』で小数点以下を切り捨てします。

【使用例②】10~20の間の整数で乱数を生成

次に「10~20の間の整数で乱数を生成する方法」です。

以下が記載例です。

let min = 10;
let max = 20;

console.log(Math.floor(Math.random() * (max - min + 1)) + min);

//実行結果:17

『Math.random()』に『(最大-最小+1)』を掛け、最期に「+ min」の部分で最小値を足すことで生成します。

こちらも、そのままでは小数点以下も表示されてしまうため、『Math.floorメソッド』で小数点以下を切り捨てします。

【使用例③】配列の要素をランダムで取得

最期に「配列の要素をランダムで取得する方法」です。

以下が記載例です。

let foods = ["焼肉", "そば", "餃子", "寿司"]

console.log(foods[Math.floor(Math.random() * foods.length)]);

//実行結果:寿司

配列の要素をランダムに取得する方法です。ここでは『foods』という配列の要素をランダムで取得します。

配列の要素の数を『length』で取得していますが、『foods.length』は4のため、0~3の乱数が生成されます。

そのため、『foods』という配列の要素をランダムで取得できています。

まとめ

以上が「JavaScriptにおける『乱数(ランダム)の生成』について、『Math.randomメソッド』」でした。

まとめ
  • Math.randomメソッド:は0以上1未満の乱数のため、『小数』で生成
  • ①0~●の乱数を生成:『Math.random()』×『生成したい数+1』
  • ②『最小』~『最大』の乱数を生成:『Math.random()』×『(最大-最小+1)』+『最小』
  • ③配列の要素をランダムで取得:『Math.random()』×『配列.length』

ぜひランダムな数値を生成して、面白いアプリを作ってみてください。

この記事が誰かの参考になれば幸いです。

お疲れさまでした。

ABOUT ME
タカヒデ
タカヒデ
ITを楽しく勉強中
通信会社の企画職で働く30代 非エンジニアでありながら半分趣味でITエンジニアリングやプログラミングを学習中 IT初心者が楽しいと思えるように発信することを目指しています ↓Xもやっているのでフォローしてね
記事URLをコピーしました