エクセルでランダムな数字を作る方法|RAND・RANDBETWEEN・重複なし・抽選・固定

エクセルでランダムな数字を作る方法|RAND・RANDBETWEEN・重複なし・抽選・固定

エクセルで、ランダムな数字を作るには、RAND関数(0以上1未満の小数)か、RANDBETWEEN関数(指定した範囲の整数)を使います。1から100までの整数なら、=RANDBETWEEN(1,100) です。乱数は、シートを再計算するたびに、変わります。

この記事では、乱数の作り方、重複しない乱数、ランダムな並び替え、抽選、乱数を固定する方法、乱数が勝手に変わるのを止める方法を説明します。乱数は、毎回、値が変わるため、下の練習表では、RAND関数で作った乱数を、値として固定した例を使い、その乱数から、順位や整数を作る式の結果を確認できます。

目次

エクセルのランダム|やりたいこと別の式

やりたいこと式(例)ポイント
0以上1未満の乱数を作る=RAND()再計算のたびに、値が変わります。
1〜100の整数を作る=RANDBETWEEN(1,100)最小値と最大値を、指定します。
5〜10の小数を作る=RAND()*(10-5)+5「最大−最小」を掛けて、最小を足します。
重複しない乱数(順位)を作る=RANK.EQ(B3,$B$3:$B$8,0)乱数の順位を、使います。
ランダムな順に、並び替える=SORTBY(A3:A8,RANDARRAY(6))Microsoft 365 の関数です。
抽選で、n番目の人を取り出す=INDEX($A$3:$A$8,MATCH(1,$C$3:$C$8,0))順位が、1の行の氏名を返します。
乱数を、固定する「値として貼り付け」コピーして、値として貼り付けます。
ポイントポイント:RAND関数とRANDBETWEEN関数は、シートを編集するたびに、再計算されて、値が変わります。使う値を、決めたいときは、値として貼り付けて、固定します。

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

RAND関数・RANDBETWEEN関数で乱数を作る

0以上1未満の乱数は、RAND関数です。引数は、ありません。

RAND関数の式
数式=RAND()
ひとことでRAND

整数の乱数は、RANDBETWEEN関数で、最小値と最大値を指定します。1から100までなら、次の式です。

RANDBETWEEN関数の式
数式=RANDBETWEEN(1,100)
ひとことでRANDBETWEEN
1
です
100
です

最大値も、結果に含まれます。小数の乱数を、範囲指定で作るときは、RAND関数に、「最大−最小」を掛けて、最小を足します。5から10の小数なら、=RAND()*(10-5)+5 です。

乱数から、整数やサイコロの目を作る

練習表の乱数(B列)は、RAND関数で作った値を、固定したものです。この乱数に、99を掛けて1を足し、整数に丸めると、1から100の整数になります。

1
結果を出したいセル(D3)を選びます。
2
「=ROUND(」と入力して、乱数のセル(B3)をクリックします。
3
「*99+1,0)」と入力します。
4
Enter キーを押して、下の行まで、コピーします。
ROUND関数の式
数式=ROUND(B3*99+1,0)
ひとことで四捨五入する
B3*99+1
四捨五入する数値です
0
桁数です
エクセルで乱数から順位・整数・サイコロの目を作った表(氏名、乱数、順位、1〜100、サイコロ、各式の結果)
エクセルで乱数から順位・整数・サイコロの目を作った表(氏名、乱数、順位、1〜100、サイコロ、各式の結果)

梅の乱数0.83は、0.83×99+1=83.17で、結果は 83 です。サイコロの目は、=INT(B3*6)+1 で、梅は 5 になります(0.83×6=4.98の整数部分4に、1を足します)。

重複しない乱数と、抽選のやり方

乱数どうしは、ほぼ重複しません。乱数の大きい順の、順位を付けると、重複のない、ランダムな順番になります。順位は、RANK.EQ関数で、求めます。

RANK.EQ関数の式
数式=RANK.EQ(B3,$B$3:$B$8,0)
ひとことで順位を求める
B3
順位を調べる値です
$B$3:$B$8
データの範囲です
0
順序(0=大きい順、1=小さい順)です

竹の乱数0.91が、いちばん大きいので、順位は 1 です。次に、順位が1の人を、INDEX関数とMATCH関数で、取り出すと、抽選の結果になります。

INDEX関数の式
数式=INDEX($A$3:$A$8,MATCH(1,$C$3:$C$8,0))
ひとことで位置を指定して値を返す
$A$3:$A$8
範囲です
MATCH(1,$C$3:$C$8,0)
行番号です

結果は 竹 です。MATCH関数の、1を、2、3に変えると、2番目、3番目の人が、取り出せます。順位の付け方は、順位を付ける方法を参照してください。

Microsoft 365 なら、ランダムに並び替えられる

Microsoft 365 などの、新しいバージョンなら、RANDARRAY関数と、SORTBY関数で、ランダムな順に、並べ替えられます。

SORTBY関数の式
数式=SORTBY(A3:A8,RANDARRAY(6))
ひとことで別の列を基準に並べ替える
A3:A8
範囲です
RANDARRAY(6)
基準の範囲です

再計算するたびに、並びが変わります。RANDARRAY関数の「6」は、データの件数です。古いバージョンでは、使えないので、乱数の列と、RANK.EQ関数、INDEX関数、MATCH関数の、組み合わせを使います。

乱数を固定する・勝手に変わるのを止める

乱数は、何かを入力するたびに、変わってしまいます。値を、そのまま、残したいときは、乱数のセルを、コピーして、「値として貼り付け」をします。

1
乱数のセル(範囲)を選んで、Ctrl + C キーでコピーします。
2
同じ範囲を選んだまま、右クリックします。
3
「貼り付けのオプション」の「値」をクリックします。

式が消えて、そのときの値が、残ります。再計算を、止めたいだけなら、「数式」タブの「計算方法の設定」を「手動」にします。F9 キーで、再計算できます。

乱数がおかしいときの確認表

症状考えられる原因対処
乱数が、勝手に変わるRAND関数は、再計算で、変わる「値として貼り付け」で、固定する。
同じ数字が、何度も出るRANDBETWEEN関数は、重複を除かない乱数の順位を使って、重複を避ける。
1が、まったく出ない範囲の指定が、ずれているRANDBETWEEN(1,100) の、最小値を確認する。
「#NAME?」と表示されるSORTBY・RANDARRAYが、使えないバージョンRANK.EQ関数を使った、方法にする。
小数が、長すぎるRAND関数の結果は、小数ROUND関数で、桁数を整える。
値を、変えても、結果が変わらない計算方法が「手動」になっている「数式」タブの「計算方法の設定」を「自動」にする。
抽選の結果が、毎回変わる乱数が、固定されていない乱数を、値として貼り付けてから、抽選する。

ランダムのよくある質問

ランダムな数字を、作る関数は?

小数ならRAND関数、整数ならRANDBETWEEN関数です。=RANDBETWEEN(1,100) で、1から100の整数が作れます。

重複しない、ランダムな数字を作るには?

RAND関数の乱数の列に、RANK.EQ関数で、順位を付けます。順位が、ランダムな、重複しない番号になります。

乱数が変わらないようにするには?

乱数のセルを、コピーして、「値として貼り付け」をします。式が消えて、値が、固定されます。

あわせて読みたい:ランダム・抽出の関連記事

練習用ファイル:練習用Excelファイル(.xlsx・無料)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次