「Excelで名簿をランダムに並べ替えたい」
「抽選会や座席決めで公平にシャッフルしたい」
こんなとき、Excelなら数秒でデータをランダムに並び替えることができます。
RAND関数やSORTBY関数を使えば、面倒なくじ引きや抽選もスムーズにできますし、さらに最新のExcelならもっとスマートなやり方も可能です。
今回は、Excelでデータをランダムに並び替える基本の方法から、便利な新機能までわかりやすく解説します。
ランダム並び替えが役立つ場面

ビジネスシーンでの活用
- チーム分けや担当者決め
- プレゼンテーション順の決定
- サンプル調査対象の選定
- 公平な順番決め
イベントでの活用
- 抽選会やくじ引き
- 座席表の作成
- 順番決めゲーム
- ランダムペアリング
データ分析での活用
- テストデータの作成
- サンプリング調査
- A/Bテストの被験者分け
- ランダムサンプルの抽出
Excelでランダムに並び替える基本のやり方
RAND関数+並べ替え
最もシンプルなのは、RAND
(ランド)関数を使う方法です。
手順
- 並び替えたいデータがA列にあるとします(例:名簿)
- B列に
=RAND()
と入力し、データの行数だけコピー - B列を基準に昇順または降順で並べ替え
これだけで、データが完全にランダムに並び替わります。
実例
元のデータ:
A列(名前) | B列(乱数) |
---|---|
田中 | 0.347 |
鈴木 | 0.821 |
佐藤 | 0.192 |
このB列を昇順で並べ替えると:
A列(名前) | B列(乱数) |
---|---|
佐藤 | 0.192 |
田中 | 0.347 |
鈴木 | 0.821 |
という具合になります。
詳細な操作手順
Step 1: 乱数の生成
- B1セルに
=RAND()
を入力 - B1を選択してコピー(Ctrl+C)
- 名簿の行数分だけ貼り付け
Step 2: 並べ替え
- A列とB列を含む範囲を選択
- 「データ」タブ→「並べ替え」
- 並べ替えのキーを「B列」に設定
- 「OK」をクリック
並べ替え後は値を固定しよう
RAND関数は再計算のたびに値が変わります。
並び順を固定したいときは、並べ替え後に次の処理をしましょう:
値の固定方法
方法1: 値貼り付け
- B列をコピー
- B列を選択して右クリック
- 「形式を選択して貼り付け」→「値」
方法2: 補助列の削除
- 並べ替え完了後にB列を削除
- 並び順は維持される
固定が必要な理由
- F9キーで再計算されると順番が変わる
- 他の計算が実行されると乱数が更新される
- ファイルを開き直すと順番が変わる可能性
最新ExcelならSORTBY + RANDARRAYが便利

Excel365や2021以降では、もっと簡単な方法があります。
SORTBYとRANDARRAY
=SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10)))
これだけで、A2:A10のデータがランダムに並び替わった一覧を作れます。
この方法の特徴
- 元のデータを壊さずに並び替え結果を別の場所に出せる
- 何度も計算すると並び順が変わるので、再抽選も簡単
- 1つの数式だけで完結
- 複数列でも同時に並び替え可能
複数列の並び替え例
=SORTBY(A2:C10, RANDARRAY(ROWS(A2:A10)))
A列からC列までの3列を同時にランダム並び替えできます。
RANDARRAY関数の詳細
基本構文
=RANDARRAY(行数, 列数, 最小値, 最大値, 整数フラグ)
よく使うパターン
=RANDARRAY(10) // 10個の乱数(0~1)
=RANDARRAY(10,1,1,100,TRUE) // 1~100の整数10個
応用テクニック
指定した数だけランダム抽出
全体から一部だけを抽選で選びたい場合:
=INDEX(SORTBY(A2:A20, RANDARRAY(ROWS(A2:A20))), SEQUENCE(5))
この式で、A2:A20から5名をランダム抽出できます。
条件付きランダム並び替え
特定の条件を満たすデータのみをランダムに並び替え:
=SORTBY(FILTER(A2:A20, B2:B20="条件"), RANDARRAY(ROWS(FILTER(A2:A20, B2:B20="条件"))))
重複のないランダム並び替え
元データに重複がある場合の対策:
=SORTBY(UNIQUE(A2:A20), RANDARRAY(ROWS(UNIQUE(A2:A20))))
実践的な活用例
抽選会の実施
参加者リストから当選者を選ぶ
- 参加者名簿をA列に入力
- B列に
=RAND()
を入力 - 並べ替えして上位3名を当選者に
より公平性を高める方法
- 抽選実施前に画面を共有
- F9キーで再抽選を数回実施
- 最終結果を確定して保存
チーム分けの実施
4チームに分ける場合
=MOD(ROW(A2:A20)-2,4)+1
この式をC列に入れてから、ランダム並び替えを実行すると、自動的に4チームに分かれます。
座席表の作成
ランダム座席配置
- 座席番号をA列に準備
- 参加者名をB列に入力
- C列で
=RAND()
を使ってランダム並び替え - 座席番号と参加者名がランダムに対応
よくある失敗と注意点

並べ替え後にF9を押すと順番が変わる
RANDやRANDARRAYは再計算するたびに値が変わります。
対策
- 確定したいときは「値貼り付け」を実行
- または結果をコピーして別シートに保存
- 重要な抽選では必ず固定処理を実行
重複排除には別途工夫が必要
この方法は「並び替え」なのでデータの重複はそのままです。
重複がある場合の対処
=SORTBY(UNIQUE(A2:A20), RANDARRAY(ROWS(UNIQUE(A2:A20))))
UNIQUE関数で重複を除去してからランダム並び替えを実行。
Excel関数のバージョン確認
使用可能なバージョン
- RAND関数: すべてのExcelバージョン
- SORTBY関数: Excel365、Excel2021以降
- RANDARRAY関数: Excel365、Excel2021以降
古いバージョンでの代替方法
SORTBY関数が使えない場合は、従来のRAND関数+並べ替え機能を使用してください。
トラブルシューティング
よくある問題と解決法
数式エラーが出る場合
#NAME?エラー
- 原因: 関数名が認識されない
- 解決: ExcelのバージョンやSORTBY関数の対応を確認
#SPILL!エラー
- 原因: 配列数式の結果が他のデータと重なっている
- 解決: 結果を表示する範囲を空にする
並び替えが思うようにいかない
元のデータが崩れる
- 原因: 範囲選択が不適切
- 解決: 見出し行を含めて正確に範囲選択
乱数が固定されない
- 原因: 値貼り付けを忘れている
- 解決: 必ず値の固定処理を実行
高度な活用方法
加重ランダム(重み付き抽選)
当選確率を変えたい場合:
=SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))^(1/B2:B10))
B列に重みを入力すると、重みに応じた確率で並び替えられます。
複数回の抽選記録
過去の抽選結果を記録しながら新しい抽選を実施:
- 抽選結果を別シートに記録
- 履歴を確認しながら公平性を確保
- 複数回実施時の偏りをチェック
マクロとの連携
VBAマクロを使ってより高度な抽選システムを構築:
Sub RandomSort()
Range("A1:A10").Sort Key1:=Range("B1:B10"), Order1:=xlAscending
End Sub
まとめ
Excelでデータをランダムに並び替えるには、次の方法があります:
基本的な方法
RAND()
を列に入れて並べ替える- 操作が簡単で確実
- すべてのExcelバージョンで使用可能
最新の方法
- Excel365以降なら
SORTBY + RANDARRAY
でよりスマートに - 元データを保護しながら結果を表示
- 1つの数式で完結
活用のポイント
- 目的に応じた方法を選択
- 結果の固定処理を忘れずに
- 公平性を保つための手順を確立
- バックアップを取ってから実行
コメント