メインコンテンツへスキップ

Excel でリストをランダム化する(簡単なステップバイステップのチュートリアル)

Author: Amanda Li Last Modified: 2025-08-06

ランダムな並べ替えを行うことは、すべてのケースが等しい確率で出現することを保証するための迅速で簡単な方法です。このチュートリアルでは、Excelでリストを簡単にランダム化(シャッフル)する方法をいくつかのステップで説明します。

A screenshot illustrating the randomization result in Excel

ビデオ: Excel でリストをランダム化


関数を使用してリストをランダム化

このセクションでは、組み込みの Excel 関数を使用してリストをシャッフルする方法を教えます。

RAND 関数を使用してリストをランダム化

どのバージョンの Excel を使用しているユーザーでも、RAND 関数と「並べ替え」機能を利用して元のデータセットをランダムに並べ替えることができます。以下の手順に従ってください。

ステップ 1: RAND 式を入力

ランダム化したいリストの一番上のセルの隣にあるセルを選択し、下記の RAND 式を入力して「Enter」を押してください。

=RAND()

RAND formula in a cell

ステップ 2: RAND 式を他のセルに埋める

式が入ったセルのフィルハンドル(右下隅にある小さな緑色の四角)をダブルクリックして、その式を下のセルに適用します。

RAND formula applied to other cells

ステップ 3: RAND の結果を並べ替えてリストをシャッフル

1. 「B2:B8」、つまり RAND 式が含まれているリストを選択します。

2. 「ホーム」タブの「編集」グループにある「並べ替えとフィルター」をクリックし、「最小から最大へ並べ替え」を選択します。

Sort Smallest to Largest option on the ribbon

3. ポップアップダイアログボックスで「選択範囲を拡張する」を選択し、「並べ替え」をクリックします。

Selecting the 'Expand the selection' option

結果

これで準備完了です!リストは以下のようにランダム化されました。

The list is randomized

注意: Excel の RAND 関数は揮発性があります。ワークシートが変更されるたびに結果が再計算されます。そのため、並べ替え後に列 B の数字が即座に変わりました。リストを再度シャッフルしたい場合は、上記のステップ 3 を繰り返してください。そうでない場合は、RAND 関数が入っている列を削除すれば問題ありません。
RANDARRAY、SORTBY、ROWS 関数を使用してリストをランダム化(Excel 365/2021)

新しいバージョンの Excel を使用している場合(例:Microsoft 365 版の Excel や Excel 2021、または Web 版の Excel)、RANDARRAYSORTBYROWS の数式を使用することで、指定した位置でリストを素早くシャッフルできます。

ステップ 1: RANDARRAY、SORTBY、ROWS の数式を入力

ランダム化された結果を得たい空白セルを選択し、以下の数式を入力します。(なお、以下の数式の "A2:A8" はランダム化したい元のリストに置き換えてください)そして「Enter」を押します。

=SORTBY(A2:A8,RANDARRAY(ROWS(A2:A8)))

注意:
  • スプレッド範囲(この場合 B2:B8)が空白でない場合、Excel は「#SPILL!」エラーを返します。
  • この数式は揮発性です。ワークシートが変更されるたびに結果が再計算されます。リストを再度シャッフルしたい場合は、「F9」を押してください。
  • 数式の結果(ランダム化されたリスト)は編集できません。ランダム化されたリストを編集する必要がある場合は、次のステップに従ってください。

(オプション)ステップ 2: 数式の結果をコピーして貼り付け、編集可能にする

ランダムな結果だけを見たい場合は、このステップをスキップできます。ランダムにシャッフルされたリストを編集したい場合は、数式の結果をコピーして値のみを貼り付ける必要があります。

1. 数式の結果を選択し、「Ctrl」+「C」を押してコピーします。

2. コピーした結果を貼り付けるセルを右クリックします。(元の場所に値を貼り付けることも可能です。)

3. 右クリックメニューから「値のみを貼り付け」オプションを選択します。

結果

これで以下のようにシャッフルされ、編集可能なリストが得られます。


Kutools を使用して Excel でリストを 2 クリックでランダム化

数式の使用に疲れた場合や、アドインの助けを借りたい場合、Kutools for Excel「並び替え/選択範囲をランダムに」機能を使うことで、より多くのオプションを使って簡単にランダムな並べ替えを行うことができます。以下の手順に従ってください。

Kutools for Excelは、300以上の高度な機能を提供し、複雑なタスクを簡素化し、創造性と効率を向上させます。 AI機能と統合され、Kutoolsは正確にタスクを自動化し、データ管理を容易にします。Kutools for Excelの詳細情報...無料トライアル...

まず、シャッフルしたいリストを選択します。次に「Kutools」>「範囲」>「並び替え/選択範囲をランダムに」を選択します。「並び替え/選択範囲をランダムに」ダイアログがポップアップ表示されたら、「行全体」を選択し、「OK」をクリックします。

Select the Entire rows option in the dialog to shuffle the list

注意:

VBA を使用してリストをランダム化

リストを VBA メソッドでランダム化したい場合は、以下の手順に従ってください。

注意: VBA マクロを実行した後は元に戻せません。将来元のデータが必要になる可能性があるため、リストのコピーを別の場所に作成しておいてください。

ステップ 1: シャッフルするリストを選択

The list to be shuffled is selected

ステップ 2: VBA コードをモジュールウィンドウにコピー

1. 「Ctrl」+「F11」を押して VBA エディタを開き、「挿入」>「モジュール」をクリックしてモジュールコードウィンドウを開きます。

Click Insert > Module in the VBA editor

2. 下記の VBA コードをコピーして開いたモジュールウィンドウに貼り付けます。

Sub RandomSort()
'Update by ExtendOffice
Dim xRg As Range
Dim xNum, xF, xI As Integer
Dim xWSh, xAWSh As Worksheet
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xAWSh = Application.ActiveSheet
Set xRg = ActiveWindow.RangeSelection
Set xWSh = Worksheets.Add
xNum = xRg.Count
For xF = xNum To 1 Step -1
    xI = WorksheetFunction.RandBetween(1, xF)
    xWSh.Range("A1").Value = xRg.Item(xI)
    xRg.Item(xI) = xRg.Item(xF)
    xRg.Item(xF) = xWSh.Range("A1")
Next
xWSh.Delete
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

ステップ 3: VBA コードを実行

コードウィンドウで「F5」を押すか、 Run button ボタンをクリックしてこのコードを実行します。

The run button in the code window

結果

The list is shuffled

注意: リストを再度ランダム化したい場合は、上記のップ 3 を繰り返してください。