Excel一覧 Excel操作・関数 RAND・RANDBETWEEN・ランダム関数 関数の使い方

【Excel】ランダムな数字を重複なしで作る方法|範囲指定と実務応用テクニック

Excelで乱数を使うときに、「ランダムな数字を生成したいけど、重複は避けたい」という場面は非常に多くあります。

たとえば、

  • 抽選番号を1〜100の範囲で重複なしで割り当てたい
  • ランダムな社員番号・商品コードを生成したい
  • シミュレーションやサンプリングのために一意な乱数リストを作りたい

単純に「=RANDBETWEEN(1,100)」を使うと、同じ数値が複数回出てしまいます。
Excelには「重複しない乱数」を直接作る関数はありませんが、
関数の組み合わせ並べ替えのテクニックで簡単に実現できます。

この記事では、重複しないランダム数字をExcelで生成する方法
初心者にもわかりやすく、かつ実務で使える形で解説します。

✅ 基本:RANDBETWEEN関数でランダム数字を作る

まずは基本となる関数から確認しておきましょう。


・RANDBETWEEN関数の構文

"=RANDBETWEEN(最小値, 最大値)"


・例

"=RANDBETWEEN(1,100)"

1〜100の範囲でランダムな整数を生成します。
ただし、このままでは同じ数字が複数回出る可能性があります。

セル結果
A217
A342
A417 ←重複発生!

したがって、RANDBETWEEN単体では「重複しない」保証がありません。
次の章から、重複しないようにする方法を紹介します。


✅ 方法①:RAND関数+並べ替えで重複なしの乱数を作る

最も簡単で確実な方法が、RAND関数を使ってランダム並べ替えを行う方法です。
この方法なら、範囲内の数字を「一意の乱数順」に並べ替えることができます。


・重複なしで並べ替えの手順

  1. 1〜100などの連番を作る
    A列に「1」「2」「3」…と入力(またはドラッグ)
  2. 隣の列にRAND関数を入力
    B2セルに「=RAND()」と入力し、下までコピー
  3. B列をキーに並べ替え
    • [データ] → [並べ替え] → 「B列」を昇順(または降順)に設定
    • これでA列の数字がランダム順に並び替わる
A列(結果)B列(RAND)
570.013
120.052
890.122
30.308

・POINT

  • RAND関数は毎回異なる0〜1の小数を生成
  • 並べ替えることで「重複しないランダム順リスト」が完成
  • 数値を再利用したい場合は「値貼り付け」で固定

・応用例

社員ID・顧客番号などの「順番をランダム化したい」ケースに最適です。
同じ数は1つもないため、「重複なし」を完全に保証できます。

参考:【Excel】昇順に並べ替えできない原因と解決方法|数字・日付・文字列ごとの対処法


✅ 方法②:SORTBY関数で一発でランダム順に並べ替える(Excel 365以降)

Excel 365または2021以降をお使いなら、
SORTBY関数を使うと一瞬で重複なしの乱数リストを作成できます。


・ランダムに並べ替える構文

"=SORTBY(範囲, RANDARRAY(範囲の行数))"


・例:1〜100の数字をランダム順に並べ替える

  1. A列に1〜100の連番を入力
  2. 別のセルに次の式を入力
    "=SORTBY(A2:A101,RANDARRAY(ROWS(A2:A101)))"

・結果

A列(元データ)結果
1〜100ランダムにシャッフルされた100個の数字

・POINT

  • RANDARRAYは乱数の配列を自動生成
  • SORTBYでその乱数を使って並べ替える
  • 一度の式で「重複しない乱数順」が完成

・例:特定範囲だけ乱数化

"=SORTBY(SEQUENCE(50,1,1,1),RANDARRAY(50))"

→ 1〜50の数字を重複なしでランダムに並べ替える。

この方法は、RAND+並べ替えの関数版とも言えます。


✅ 方法③:SEQUENCE関数で範囲を自動生成+ランダム化

Excel 365以降なら、SEQUENCE関数を使えば、連番の入力すら不要です。


・範囲を指定して自動生成する構文

"=SORTBY(SEQUENCE(個数,1,開始値,増分),RANDARRAY(個数))"


・例1:1〜100の重複なし乱数リスト

"=SORTBY(SEQUENCE(100,1,1,1),RANDARRAY(100))"

結果:1〜100がランダム順に並ぶ


・例2:10〜99の範囲で重複なし

"=SORTBY(SEQUENCE(90,1,10,1),RANDARRAY(90))"

結果:10〜99のランダム順リスト


・例3:特定範囲を抽出(上位10件だけ)

"=INDEX(SORTBY(SEQUENCE(100,1,1,1),RANDARRAY(100)),SEQUENCE(10))"

→ 1〜100の中からランダムに10件抽出


・POINT

  • RANDARRAY+SEQUENCEの組み合わせで完全自動化
  • 「範囲」「件数」「順番」をすべて関数で制御
  • 再計算するたびにランダム化される

RANDARRAY関数が使える環境では、最もスマートな方法です。




✅ 方法④:RANDBETWEEN関数+COUNTIFで重複チェック(古いExcel対応)

古いバージョンのExcel(RANDARRAYが使えない場合)でも、
COUNTIF関数を使って重複を避けながら乱数を作る方法があります。


・手順

  1. A2セルに次の式を入力
    "=RANDBETWEEN(1,100)"
  2. B2セルに次の式を入力
    "=COUNTIF($A$2:A2,A2)"
  3. A列の乱数を下にコピー

・結果

A列B列判定
171
421
172×(重複)

B列で2以上になった行が重複データです。

これを使えば、重複している行だけを削除・再計算することで、
古いExcelでも重複なし乱数を管理できます。


・POINT

  • COUNTIFで「何回出たか」をカウント
  • 重複データは手動またはフィルターで除外
  • 手間はかかるが互換性が高い

✅ 方法⑤:重複しない乱数の上位n件を抽出する

ランダムな順番のリストから特定件数だけ抜き出す場合は、
INDEX関数やSEQUENCE関数を組み合わせます。


・例:1〜100の中からランダムに10件

"=INDEX(SORTBY(SEQUENCE(100,1,1,1),RANDARRAY(100)),SEQUENCE(10))"

結果:1〜100のうちランダムに10個の重複なし数字が出力される。


・POINT

  • SORTBYでランダム順を作る
  • SEQUENCEで件数を制御
  • INDEXで上位だけ取得

この組み合わせは、抽選処理・サンプリング・乱数テストなどで重宝します。


✅ 乱数を固定して再計算を防ぐ(重複保持)

ExcelのRANDやRANDARRAYは、再計算時に値が変わります。
一度作った「重複なし乱数リスト」を固定したい場合は、
値貼り付けで確定させましょう。


・操作手順

  1. 乱数リスト全体を選択
  2. Ctrl + C(コピー)
  3. 右クリック → 「形式を選択して貼り付け」 → 「値」

これで、再計算しても乱数が変わらなくなります。


・POINT

  • ランダム抽選の結果を保存したいときに必須
  • シート再計算(F9)やブック再起動でも変わらない

✅ 実務応用例:重複なし乱数の使いどころ

用途内容活用ポイント
抽選番号作成1〜100の番号をランダムで割り当て公平な抽選を再現
社員IDランダム発行IDを重複なしで付与データの重複防止
サンプリングデータの一部をランダム抽出統計分析・品質検査
並び替え試験問題順・参加順をシャッフル公平性・自動出題に
シミュレーション異なる条件で乱数テストテストデータ生成

Excelの「重複なし乱数」は、
業務・教育・データ分析など幅広い分野で使える強力なテクニックです。


✅ RPA・Power Automateと組み合わせて完全自動化も可能

Excelの乱数生成は、RPAツールと組み合わせることで自動化も可能です。

たとえば:

  • Power Automateで毎朝乱数を生成して名簿を並べ替え
  • UiPathでExcel乱数を作り、社員リストをランダム抽出
  • Excelファイル保存後、自動で固定化(値貼り付け)

これにより、人の手を介さない完全自動抽選・データ生成が可能になります。


✅ まとめ:Excelで重複なしのランダム数字を自在に生成しよう!

  • RANDBETWEEN単体では重複が発生する
  • RAND関数+並べ替えで重複なしの順番を作れる
  • Excel 365ならSORTBY+RANDARRAYで一発生成
  • SEQUENCE関数を組み合わせれば範囲指定も自在
  • COUNTIFを使えば古いExcelでも重複チェック可能
  • 値貼り付けで固定して再計算を防止
  • RPA連携で自動化も可能

Excelで「重複しない乱数」を自在に扱えるようになると、
データ整理・抽選・シミュレーションなど、あらゆる作業が効率化します。

関数の組み合わせをマスターして、
「正確で再現性のあるランダム処理」をExcelで実現しましょう。

-Excel一覧, Excel操作・関数, RAND・RANDBETWEEN・ランダム関数, 関数の使い方