エクセルで、ランダムな数字を作るには、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関数で乱数を作る
0以上1未満の乱数は、RAND関数です。引数は、ありません。
整数の乱数は、RANDBETWEEN関数で、最小値と最大値を指定します。1から100までなら、次の式です。
最大値も、結果に含まれます。小数の乱数を、範囲指定で作るときは、RAND関数に、「最大−最小」を掛けて、最小を足します。5から10の小数なら、=RAND()*(10-5)+5 です。
乱数から、整数やサイコロの目を作る
練習表の乱数(B列)は、RAND関数で作った値を、固定したものです。この乱数に、99を掛けて1を足し、整数に丸めると、1から100の整数になります。

梅の乱数0.83は、0.83×99+1=83.17で、結果は 83 です。サイコロの目は、=INT(B3*6)+1 で、梅は 5 になります(0.83×6=4.98の整数部分4に、1を足します)。
▶ この式(D3)を、上の練習ツールで試す / この式(D5)を、上の練習ツールで試す / この式(E3)を、上の練習ツールで試す / この式(E7)を、上の練習ツールで試す
重複しない乱数と、抽選のやり方
乱数どうしは、ほぼ重複しません。乱数の大きい順の、順位を付けると、重複のない、ランダムな順番になります。順位は、RANK.EQ関数で、求めます。
竹の乱数0.91が、いちばん大きいので、順位は 1 です。次に、順位が1の人を、INDEX関数とMATCH関数で、取り出すと、抽選の結果になります。
結果は 竹 です。MATCH関数の、1を、2、3に変えると、2番目、3番目の人が、取り出せます。順位の付け方は、順位を付ける方法を参照してください。
▶ この式(C3)を、上の練習ツールで試す / この式(C4)を、上の練習ツールで試す / この式(I3)を、上の練習ツールで試す / この式(I4)を、上の練習ツールで試す / この式(I5)を、上の練習ツールで試す
Microsoft 365 なら、ランダムに並び替えられる
Microsoft 365 などの、新しいバージョンなら、RANDARRAY関数と、SORTBY関数で、ランダムな順に、並べ替えられます。
再計算するたびに、並びが変わります。RANDARRAY関数の「6」は、データの件数です。古いバージョンでは、使えないので、乱数の列と、RANK.EQ関数、INDEX関数、MATCH関数の、組み合わせを使います。
乱数を固定する・勝手に変わるのを止める
乱数は、何かを入力するたびに、変わってしまいます。値を、そのまま、残したいときは、乱数のセルを、コピーして、「値として貼り付け」をします。
式が消えて、そのときの値が、残ります。再計算を、止めたいだけなら、「数式」タブの「計算方法の設定」を「手動」にします。F9 キーで、再計算できます。
▶ この式(I6)を、上の練習ツールで試す / この式(I7)を、上の練習ツールで試す
乱数がおかしいときの確認表
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 乱数が、勝手に変わる | RAND関数は、再計算で、変わる | 「値として貼り付け」で、固定する。 |
| 同じ数字が、何度も出る | RANDBETWEEN関数は、重複を除かない | 乱数の順位を使って、重複を避ける。 |
| 1が、まったく出ない | 範囲の指定が、ずれている | RANDBETWEEN(1,100) の、最小値を確認する。 |
| 「#NAME?」と表示される | SORTBY・RANDARRAYが、使えないバージョン | RANK.EQ関数を使った、方法にする。 |
| 小数が、長すぎる | RAND関数の結果は、小数 | ROUND関数で、桁数を整える。 |
| 値を、変えても、結果が変わらない | 計算方法が「手動」になっている | 「数式」タブの「計算方法の設定」を「自動」にする。 |
| 抽選の結果が、毎回変わる | 乱数が、固定されていない | 乱数を、値として貼り付けてから、抽選する。 |
ランダムのよくある質問
ランダムな数字を、作る関数は?
小数ならRAND関数、整数ならRANDBETWEEN関数です。=RANDBETWEEN(1,100) で、1から100の整数が作れます。
重複しない、ランダムな数字を作るには?
RAND関数の乱数の列に、RANK.EQ関数で、順位を付けます。順位が、ランダムな、重複しない番号になります。
乱数が変わらないようにするには?
乱数のセルを、コピーして、「値として貼り付け」をします。式が消えて、値が、固定されます。
あわせて読みたい:ランダム・抽出の関連記事
- エクセルで順位を付ける方法|RANK.EQ・同順位・昇順・上位の取り出し
- エクセルで連番を振る方法|オートフィル・ROW関数
- エクセルで四捨五入する方法|ROUND・10の位・切り捨て・5単位
- エクセルで数式が反映されない・計算されない原因と対処
- エクセルの絶対参照・相対参照とは|$の付け方・F4キー
練習用ファイル:練習用Excelファイル(.xlsx・無料)
