Excelで乱数を使うとき、「1~100のような連続した範囲」だけでなく、
「10、20、50、100のような特定の数字だけの中からランダムに選びたい」というケースがあります。
たとえば、
- 指定した候補の中からランダムに賞金額を決めたい
- 特定の点数リストからランダムに抽出したい
- 事前に決めた数値候補の中からランダムに1つ選びたい
こうした「指定した数字の中からランダムに選ぶ」処理は、
関数を少し工夫するだけでExcelでも簡単に実現できます。
この記事では、RAND関数・RANDBETWEEN関数・INDEX関数などを組み合わせて、
指定した数字からランダムに選択する方法を分かりやすく解説します。
目次
- ✅ 指定した数字の中からランダムに選ぶ基本の考え方
- ✅ INDEX関数×RANDBETWEEN関数で指定数字からランダム抽出
- ・構文
- ・応用:候補数が変動しても自動対応
- ✅ RAND関数×SORTBY関数でランダム順に並べ替える
- ・手順
- ・関数だけで自動的にランダム順を作る(Excel 365対応)
- ✅ 重複しない複数のランダム選択をしたい場合
- ・RAND関数で重複しないランダム抽出
- ・SORTBY関数で一瞬で実現(Excel 365対応)
- ✅ 特定の範囲内の指定数字をランダム選択する
- ・例:10刻みの数値の中からランダムに選ぶ
- ・特定の数値セットを直接扱う
- ✅ 実務で使える応用例
- ・1. 抽選・くじ引きの自動化
- ・2. 商品や賞品をランダムで割り当て
- ・3. 模擬試験や評価データのランダム生成
- ✅ 注意点とおすすめ設定
- ・再計算で値が変わる
- ・RANDARRAYなどはExcel 365以降専用
- ・ランダム性を維持するためのポイント
- ✅ まとめ:Excelで「指定した数字の中からランダム」を自由自在に扱おう
✅ 指定した数字の中からランダムに選ぶ基本の考え方
ExcelのRAND関数やRANDBETWEEN関数は「範囲内の数」を扱うことはできますが、
特定の数値だけを対象にする機能はありません。
そのため、「候補リスト」を自分で作っておき、
そのリストからランダムに1つ選ぶ形にします。
たとえば、セルA1~A4に以下のように入力しておきます。
| A列 |
|---|
| 10 |
| 20 |
| 50 |
| 100 |
このリストの中からランダムに1つを選びたい場合、
INDEX関数 と RANDBETWEEN関数 を組み合わせます。
参考:【Excel】XLOOKUP関数で複数条件を扱う方法とは?INDEX・FILTERとの違いも解説【実務対応】
✅ INDEX関数×RANDBETWEEN関数で指定数字からランダム抽出
・構文
=INDEX(範囲, RANDBETWEEN(1, 候補数))
この組み合わせは、最もシンプルで安定した方法です。
・実例
=INDEX(A1:A4, RANDBETWEEN(1, 4))
RANDBETWEEN(1,4)→ 1~4の中でランダムな整数を返すINDEX(A1:A4, その番号)→ その位置にある数値(10、20、50、100のいずれか)を返す
結果として、A1~A4の中からランダムに1つの値が表示されます。
参考:【Excel】IFNA関数で複数条件を処理する方法|VLOOKUP・INDEX/MATCH・IFとの組み合わせでExcel作業を効率化
・応用:候補数が変動しても自動対応
もし候補リストの長さが変わる場合(例:A1:A10まで増えるなど)、
COUNTA関数を組み合わせて自動調整します。
=INDEX(A1:A100, RANDBETWEEN(1, COUNTA(A1:A100)))
COUNTA関数で「データが入っているセルの数」を自動でカウントし、
その数に応じてランダム抽出を行います。
これで、候補が増減しても式を変更する必要がなくなります。
✅ RAND関数×SORTBY関数でランダム順に並べ替える
「指定した数字の中からランダムに1つだけ」ではなく、
「ランダム順に並べ替えたい」場合は、RAND関数を使います。
・手順
- A1~A4に候補数字(例:10、20、50、100)を入力
- B1に次の式を入力:
=RAND() - A列とB列を選択して「B列を基準に昇順で並べ替え」
これで、A列の指定数字がランダムな順に並び替えられます。
・関数だけで自動的にランダム順を作る(Excel 365対応)
Excel 365をお使いなら、次の1行で完結します。
=SORTBY(A1:A4, RANDARRAY(COUNTA(A1:A4)))
RANDARRAYが候補数と同じ個数の乱数を生成SORTBYが乱数を基準に並び替え
結果として、指定した数字がランダム順に並び替えられます。
重複は一切発生せず、並べ替えごとに新しい順序が表示されます。
参考:【Excel】数字を並び替えると「1, 10, 100, 2」になる原因と解決方法|正しい昇順・降順の作り方
✅ 重複しない複数のランダム選択をしたい場合
「指定した数字の中から3つランダムに選びたい」ような場合は、
重複を防ぐ工夫が必要です。
・RAND関数で重複しないランダム抽出
- A1:A10に候補数字を入力
- B1に
=RAND()を入力し、B列全体にコピー - A列とB列を選択して、B列を昇順に並べ替え
- 上位3件(A1:A3)を抽出
この方法で、候補数字から重複なしのランダム選出が可能です。
・SORTBY関数で一瞬で実現(Excel 365対応)
Excel 365以降なら、次のように書くだけでOKです。
=INDEX(SORTBY(A1:A10, RANDARRAY(COUNTA(A1:A10))), SEQUENCE(3))
この式の動作:
RANDARRAYで候補数分の乱数を生成SORTBYで乱数順に並び替えSEQUENCE(3)で上位3件を抽出
たった1行で、指定数字の中から「重複なしで3件ランダム抽出」できます。
参考:【Excel】昇順・降順に並べる方法|基本操作から関数・応用例まで徹底解説
✅ 特定の範囲内の指定数字をランダム選択する
「候補が数値の範囲で決まっている場合(例:10、20、30、40、50)」も、
少し工夫するだけで同じように扱えます。
・例:10刻みの数値の中からランダムに選ぶ
候補:10, 20, 30, 40, 50
RANDBETWEEN関数と掛け算を組み合わせます。
=RANDBETWEEN(1,5)*10
1~5の乱数に10を掛けることで、10刻みの数値(10~50)が得られます。
「5刻み」なら ×5、「100刻み」なら ×100 に変更するだけで応用可能です。
・特定の数値セットを直接扱う
候補が「5, 8, 15, 22, 50」のようにバラバラな場合は、
INDEX関数+RANDBETWEENの組み合わせが最適です。
=INDEX({5,8,15,22,50}, RANDBETWEEN(1,5))
配列 {} 内に候補数字を直接記述しておく方法です。
セルを使わず1つの式で完結するので、簡単な処理に向いています。
参考:【Excel】「範囲内にあれば」を判定する関数まとめ|存在チェックの基本と応用
✅ 実務で使える応用例
指定した数字からランダム抽出する関数は、実務のさまざまな場面で活用できます。
・1. 抽選・くじ引きの自動化
社員番号や応募番号リストから、当選番号をランダムに抽出。
RAND+SORTBYを組み合わせれば、公平で再現性のある抽選表を作れます。
・2. 商品や賞品をランダムで割り当て
10円、100円、500円などの特定価格リストから、ランダムに景品を決定する際に活用可能。
INDEX+RANDBETWEENの構成なら、指定数値リストを簡単に操作できます。
・3. 模擬試験や評価データのランダム生成
得点候補(60,70,80,90,100など)を事前に用意し、
関数でランダムに選択することで、テストデータの自動生成にも利用可能です。
✅ 注意点とおすすめ設定
・再計算で値が変わる
RAND関数やRANDBETWEEN関数は再計算のたびに値が変わります。
結果を固定したい場合は、値貼り付けを行いましょう。
- 対象セルをコピー(Ctrl+C)
- 右クリック → 「値として貼り付け」
・RANDARRAYなどはExcel 365以降専用
RANDARRAY・SORTBY・SEQUENCEは新しい関数であり、
Excel 2019以前の環境では使用できません。
古いバージョンではRAND+並べ替えの方法を選びましょう。
・ランダム性を維持するためのポイント
同じ計算を何度も行うと似た結果が出る場合があります。
完全に新しい乱数を生成したい場合は、
F9キーを押して手動で再計算を行うと新しい結果が得られます。
✅ まとめ:Excelで「指定した数字の中からランダム」を自由自在に扱おう
- 指定した数値リストからランダムに選ぶには
INDEX+RANDBETWEENの組み合わせが最も基本。 - 候補が変動する場合は
COUNTAを使って自動対応できる。 - Excel 365なら
SORTBY+RANDARRAY+SEQUENCEで高速・重複なし抽出も可能。 - 再計算で結果が変わるため、確定値が必要なら「値貼り付け」で固定する。
- 抽選・テストデータ・評価シートなど、あらゆる業務に応用できる。
関数をうまく組み合わせることで、
Excelだけで「指定した数字の中からランダムに選ぶ」処理を柔軟に実現できます。
シンプルな一行の式でも、業務効率を大きく改善できるテクニックです。