[Javascript]JSでランダムに数字を出力する方法[乱数]
公開:2020.05.09 更新:2020.05.11

こんばんは、今日も今日とてらいどらです。

最近、クイズゲームを作り始めたのですがクイズのランダム出題の為にランダム関数を使う必要が出てきたので、Javascriptでの乱数出力について調べてみました。

では早速。持ち物は軽めの数学の知識です。

実践

まず、乱数を入れる変数を用意しましょう。

var Rnum = 0;

私はランダムナンバーの略でRnumにしました。

ではここに乱数を入れていきます。まずは、一番基本的な事をやりましょう。

var Rnum = 0;
Rnum = Math.random();
alert(Rnum);

関数Mathは処理の種類みたいなものです。数学的な処理をしたい時に使います。ここでは詳述を省きます。

知りたいのは「random()」の方ですね。乱数出力の軸となるのがこの「random関数」です。

これは実行すると0~1の間で乱数を返します。当然のようにこれでは、小数になりますが「乱数を出力する」という目的は果たせましたね。

応用:整数で乱数を出力する。

さて、乱数は出力できましたが、このままでは私のように、

「1~100番目まで問題を用意し、ランダムに出力する」や、

「色に1~8までの数字を割り振り、乱数出力でランダムな色のボールを表示する」

などの処理には使えませんね。配列は整数管理ですし、少数桁数10桁にも及ぶ中にターゲットの番号をセッティングするのは現実的ではありません。

整数で出力する必要があるわけですね。

そこで、「floor関数」を使います。

floor関数の能力は端的に言うと少数桁の四捨五入とかの勉強範囲にあった「切り捨て」です。

例えば

var flonum = 0;
fronum = Math.floor(9.55678);
alert(fronum);

と書いて出力すると、

と出ます。

整数桁を残して少数桁第一位までを全て消してしまう訳ですね。

スッキリ!!

まとめ:1~100までの整数をランダムで出力

さて、まとめです。

ここまで来れば、私の目的の「1~100までの整数範囲で乱数を出力」を達成することが出来ます。まず、以下の式です。

var Rnum = 0;

Rnum = Math.floor(Math.random()*100);
alert(Rnum);

まず、範囲を拡大する為に、Math.random()に希望する最大値を掛けます。(私の場合は100)。

この時点では、出力されるのは0~100までの小数なので、Math.random()をMath.floor()で囲います。

処理順としては、Math.random()*100で出力された範囲0~100の小数をMath.floorで処理し、強制的に整数にします。

ですが、このままでは、0が出てしまう確率が残っているので、最小値を上げるために最後に1を足し、合わせて100から1を引きます。

最終的な形は以下となります。

var Rnum = 0;

Rnum = Math.floor(Math.random()*99)+1;
alert(Rnum);

これで、ようやく目標達成です。

出力値は1~100の整数値となります。

お疲れ様です。

おまけ

ついでに、ほぼほぼ完成してるクイズゲームのURLを貼っておきます。

あくまでもベータ版ですが、お楽しみください。

おすすめ商品

一から勉強する際に使った教材

持っていると便利なHTML&CSS辞典

コメント

内容をご確認の上、送信してください。