「チーム分けを公平にしたい」「抽選やプレゼン順をランダムで決めたい」──
そんなとき、わざわざくじを作らなくてもExcelだけで完全ランダムな順番決めが可能です。
Excelには「RAND関数」や「RANDBETWEEN関数」といった乱数生成関数があり、
並べ替え機能や新しい動的配列関数(SORTBY・RANDARRAY)と組み合わせることで、
わずか数秒で「重複なし・順序ランダム」のリストを自動作成できます。
この記事では、初心者でもすぐ使える実務レベルのランダム順番決めの方法を、
バージョン別に丁寧に解説します。
Excel 365/2021以降の最新関数はもちろん、Excel 2016以前でも使える方法も網羅しています。
目次
- ✅ Excelでランダムに順番を決める基本の考え方
- ✅ RAND関数で順番をランダム化する基本手順
- ・RAND関数の構文
- ・手順:RANDで順番をランダムにする
- ✅ RANDBETWEEN関数で整数乱数を使った順番決め
- ・RANDBETWEEN関数の構文
- ・順番決めでの使い方
- ✅ SORTBY関数×RANDARRAY関数で完全自動シャッフル(Excel 365以降)
- ・SORTBY関数の構文
- ・応用:順番付きで表示する
- ✅ UNIQUE関数と組み合わせて重複なしの順番を作る
- ・構文
- ✅ 重複なしでランダムな「番号」だけを生成したい場合
- ・構文
- ・応用:人名リストに自動で番号を付ける
- ✅ Excel 2016以前でも使えるランダム順の決め方
- ・RAND関数+並べ替え
- ・マクロ(VBA)を使う方法
- ✅ 実務での活用例
- ・1. 発表順・面接順の決定
- ・2. チーム分けの自動化
- ・3. 抽選・プレゼント当選者選び
- ・4. テストデータやモックデータ生成
- ✅ 注意点とコツ
- ・RANDとRANDBETWEENは再計算で値が変わる
- ・RANDARRAY・SORTBYはExcel 365専用
- ・RANDは揮発性関数
- ・乱数の公平性を高める
- ✅ まとめ:Excelのランダム順決めを活用して業務をスマートに
✅ Excelでランダムに順番を決める基本の考え方
Excelで「順番をランダムにする」には、元データ+乱数+並べ替えの3ステップで実現します。
- 順番を決めたい人や項目をリスト化
- 各項目にランダムな数値(乱数)を付与
- 乱数を基準に並べ替える
この手順を理解しておけば、どんなデータでも公平にシャッフルできます。
まずはRAND関数を使った最も基本的な方法から見ていきましょう。
参考:【Excel】適当な数値(乱数)をランダムに入力する方法
✅ RAND関数で順番をランダム化する基本手順
RAND関数はExcelの乱数生成の基本中の基本です。
関数を入力するだけで0以上1未満のランダムな小数を返します。
・RAND関数の構文
=RAND()
再計算のたびに値が変わるため、毎回異なる結果が得られます。
・手順:RANDで順番をランダムにする
- A列に名前リストを入力
例:A1~A10に社員名を入力 - B1に次の式を入力
=RAND() - B列全体にコピー
- データタブ → 並べ替え → 「B列」を昇順に並べ替え
これで、A列の名前がランダム順に入れ替わります。
・ポイント
- 並べ替えのたびに新しい順番を作れる
- 公平性が高く、くじ引きや発表順などにも利用可能
- RAND関数は再計算のたびに変わるため、確定後は「値貼り付け」で固定化がおすすめ
・結果を固定する手順
- 並べ替え後、範囲を選択してコピー(Ctrl+C)
- 右クリック → 「値として貼り付け」
これで、乱数の再計算による変動を防げます。
参考:【Excel】ランダムな数字を「重複なし」で作る方法|RAND・RANDBETWEEN
✅ RANDBETWEEN関数で整数乱数を使った順番決め
RAND関数は小数を返しますが、整数で順番を管理したい場合はRANDBETWEEN関数が便利です。
・RANDBETWEEN関数の構文
=RANDBETWEEN(最小値, 最大値)
例:=RANDBETWEEN(1,100) → 1〜100の整数の中からランダムに1つを返す。
・順番決めでの使い方
- A列にメンバー名を入力
- B1に次の式を入力:
=RANDBETWEEN(1,1000) - B列を昇順で並べ替え
整数の方が「順位を付ける」イメージがわかりやすく、
ランキング形式で表示したい場合に向いています。
・注意点
RANDBETWEENは乱数の重複が起こることがあります。
重複を避けたい場合は、RAND関数+並べ替えの方が確実です。
✅ SORTBY関数×RANDARRAY関数で完全自動シャッフル(Excel 365以降)
Excel 365/Excel 2021以降では、1行の数式だけで完全ランダムな順番決めができます。
・SORTBY関数の構文
=SORTBY(範囲, RANDARRAY(行数))
SORTBY:指定範囲を別の配列の順序で並べ替える関数RANDARRAY:乱数の配列を生成
・実例
=SORTBY(A1:A10, RANDARRAY(10))
これだけで、A1:A10の内容がランダム順に自動表示されます。
並べ替えを手動で行う必要はありません。
再計算(F9キー)するたびに、異なる順序が生成されます。
参考:【Excel】数字を並び替えると「1, 10, 100, 2」になる原因と解決方法|正しい昇順・降順の作り方
・応用:順番付きで表示する
乱数でシャッフルした結果に「順位」も付けたい場合は、
SEQUENCE関数を組み合わせて次のようにします。
=CHOOSE({1,2}, SEQUENCE(ROWS(A1:A10)), SORTBY(A1:A10, RANDARRAY(ROWS(A1:A10))))
これで、1列目に順位、2列目にランダム順の名前が一覧表示されます。
くじ番号や発表順表を自動生成したい場合に非常に便利です。
参考:【Excel】曜日を扱う関数の使い方まとめ【TEXT関数・WEEKDAY関数・CHOOSE関数】
✅ UNIQUE関数と組み合わせて重複なしの順番を作る
「リストに重複がある場合」「同じ名前が混在している場合」は、
UNIQUE関数を使って重複を除いた上でランダム化するのが効果的です。
・構文
=SORTBY(UNIQUE(A1:A20), RANDARRAY(COUNTA(UNIQUE(A1:A20))))
これで、A列の重複データを取り除いた上でランダム順に並べ替えます。
データ入力ミスや同名重複がある場合も安心です。
参考:【Excel】名前を検索して抽出する方法まとめ|関数とフィルターで効率化
✅ 重複なしでランダムな「番号」だけを生成したい場合
順番を決める代わりに、ランダムな番号を割り振りたいケースもあります。
その場合はSEQUENCE関数を活用します。
・構文
=SORTBY(SEQUENCE(10), RANDARRAY(10))
これは「1~10」の連番をランダムに並べ替えたリストを返します。
つまり、「順番表」や「抽選番号表」を一瞬で作成できる関数です。
・応用:人名リストに自動で番号を付ける
A列に人名がある場合、次のように記述します。
=CHOOSE({1,2}, SORTBY(SEQUENCE(COUNTA(A1:A10)), RANDARRAY(COUNTA(A1:A10))), SORTBY(A1:A10, RANDARRAY(COUNTA(A1:A10))))
1列目にランダム番号、2列目に対応する人名が出力されます。
関数ひとつで「番号付き順番リスト」が完成します。
✅ Excel 2016以前でも使えるランダム順の決め方
Excel 365の新関数が使えない場合でも、従来の方法で十分対応可能です。
・RAND関数+並べ替え
- 名前リスト(A列)を作成
- 隣の列(B列)に
=RAND()を入力しコピー - データ → 並べ替え → 「B列」を基準に昇順
この方法はどのバージョンのExcelでも確実に使えます。
再計算(F9)で新しい順番を再生成できます。
・マクロ(VBA)を使う方法
より自動的に処理したい場合は、VBAでランダム並べ替えを行うことも可能です。
Sub ShuffleList()
Dim i As Long, j As Long
Dim tmp As Variant
Dim rng As Range
Set rng = Range("A1:A10")
Randomize
For i = rng.Rows.Count To 2 Step -1
j = Int(Rnd() * i) + 1
tmp = rng.Cells(i, 1).Value
rng.Cells(i, 1).Value = rng.Cells(j, 1).Value
rng.Cells(j, 1).Value = tmp
Next i
End Sub
このマクロを実行すると、A1:A10のリストが自動的にランダム順に並び替えられます。
再計算不要で、ボタン1つで公平なシャッフルが行えます。
✅ 実務での活用例
ランダム順決めの仕組みは、業務や日常のあらゆるシーンで活躍します。
・1. 発表順・面接順の決定
会議や発表会での順番決めに最適です。
RAND関数+並べ替えで手軽に公平性を保てます。
・2. チーム分けの自動化
社員名簿や生徒リストをランダム化して、上位から順にグループ分け。
SORTBY関数とSEQUENCEを組み合わせると、グループ番号も自動付与できます。
例:
=CHOOSE({1,2}, MOD(SEQUENCE(COUNTA(A1:A12))-1,3)+1, SORTBY(A1:A12, RANDARRAY(COUNTA(A1:A12))))
→ 3チームに自動分割。
・3. 抽選・プレゼント当選者選び
応募リストをランダムに並べ、上位N名を当選とするだけで、
抽選をExcel上で簡単に再現できます。
透明性のある公平な抽選ツールとしても利用可能です。
・4. テストデータやモックデータ生成
データ分析やシミュレーションの際に、
並び順をランダム化してバイアスを減らすことができます。
特にRANDARRAY関数はテスト環境構築に便利です。
✅ 注意点とコツ
・RANDとRANDBETWEENは再計算で値が変わる
Excelは再計算(F9キーやデータ編集)時に乱数を更新します。
結果を固定したい場合は、値貼り付けで静的に保存しておきましょう。
・RANDARRAY・SORTBYはExcel 365専用
古いバージョンでは使用できないため、RAND関数+並べ替えで代用します。
・RANDは揮発性関数
再計算が多くなると処理が重くなる場合があります。
数百行を超える場合は、必要な時だけ再計算するのがコツです。
・乱数の公平性を高める
RAND関数やRANDARRAYは非常に高品質な乱数を生成しますが、
「疑似乱数」である点を理解し、厳密な統計用途にはRなどの専用ツールを検討しましょう。
ただし日常業務やイベント用途には十分な精度です。
✅ まとめ:Excelのランダム順決めを活用して業務をスマートに
- RAND関数で乱数を生成し、並べ替えで順番をランダム化できる
- RANDBETWEEN関数は整数乱数として順位付けにも便利
- Excel 365では
SORTBY+RANDARRAYで完全自動ランダム化が可能 - 重複なし・公平な順番決め・グループ分けなど幅広い応用ができる
- 再計算で変動する点に注意し、必要に応じて値貼り付けで固定
Excelを使えば、特別なツールを使わずに公平・効率的な順番決めを誰でも実現できます。
社内抽選やチーム分け、イベント運営などでぜひ活用してみてください。
わずか数秒で「完全ランダム」が実現するExcelの力を、あなたの仕事にも取り入れてみましょう。