- 作成日 : 2025年8月25日
RANDBETWEEN関数の使い方:エクセルで指定範囲の乱数を生成する方法
RANDBETWEEN関数は、指定した最小値と最大値の間でランダムな整数を生成するエクセルの乱数関数です。テストデータの作成、シミュレーション、ランダムサンプリング、ゲームやクイズの作成など、様々な場面で活用されています。本記事では、RANDBETWEEN関数の基本的な使い方から実務での応用例、RAND関数との使い分け、揮発性関数としての特性と対処法、重複しない乱数の生成方法、そしてよくある問題とその解決方法まで、初心者にも分かりやすく解説します。乱数生成のテクニックをマスターして、データ分析やシミュレーションの幅を広げましょう。
目次
RANDBETWEEN関数の使い方
RANDBETWEEN関数とは
RANDBETWEEN関数は、指定した範囲内でランダムな整数を生成する関数です。この関数の最大の特徴は、生成される値が必ず整数であることと、最小値と最大値を含む範囲内で均等な確率で値が選ばれることです。たとえば、1から10の間で乱数を生成する場合、1と10も含めて、すべての整数が同じ確率で出現します。
この関数は揮発性関数と呼ばれ、ワークシートが再計算されるたびに新しい乱数が生成されます。F9キーを押したり、セルを編集したりするたびに値が変わるため、動的なデータ生成に適しています。
基本構文
RANDBETWEEN関数の構文はシンプルです。
=RANDBETWEEN(最小値, 最大値)
各引数について詳しく説明します。
最小値:生成される乱数の最小値を指定します。この値も生成される可能性があります。整数である必要はなく、小数を指定しても内部で整数に変換されます。
最大値:生成される乱数の最大値を指定します。この値も生成される可能性があります。最小値以上の値を指定する必要があります。
基本的な使用例
最も基本的な使用例から見ていきましょう。
=RANDBETWEEN(1, 10) // 1から10までの整数をランダムに生成
=RANDBETWEEN(0, 100) // 0から100までの整数をランダムに生成
=RANDBETWEEN(-5, 5) // -5から5までの整数をランダムに生成
サイコロのシミュレーション:
=RANDBETWEEN(1, 6) // 1から6の整数(サイコロの目)
コイントスのシミュレーション:
=IF(RANDBETWEEN(0, 1)=0, “表”, “裏”)
引数の自動変換
RANDBETWEEN関数は、小数値を指定しても自動的に整数に変換します。
=RANDBETWEEN(1.2, 9.8) // 実際は RANDBETWEEN(1, 9) として動作
=RANDBETWEEN(2.7, 5.3) // 実際は RANDBETWEEN(2, 5) として動作
この変換は切り捨てではなく、最小値は切り上げ、最大値は切り捨てで処理されます。
揮発性関数としての特性
RANDBETWEEN関数は、以下のタイミングで新しい値を生成します。
- F9キー(再計算)を押したとき
- 任意のセルに入力や編集を行ったとき
- ファイルを開いたとき
- 他の揮発性関数が更新されたとき
この特性を理解することが、RANDBETWEEN関数を効果的に使用するための鍵となります。
RANDBETWEEN関数の利用シーン
テストデータの生成
システム開発やデータベース設計で、大量のテストデータが必要な場合に活用します。
年齢データの生成(18歳から65歳):
=RANDBETWEEN(18, 65)
売上金額の生成(1万円から100万円、千円単位):
=RANDBETWEEN(10, 1000) * 1000
評価点数の生成(0から100点):
=RANDBETWEEN(0, 100)
架空の社員番号生成:
=”EMP” & TEXT(RANDBETWEEN(1000, 9999), “0000”)
アンケート・調査のシミュレーション
市場調査や顧客満足度調査のダミーデータ作成に使用します。
5段階評価のランダム生成:
=RANDBETWEEN(1, 5)
満足度調査の回答シミュレーション:
=CHOOSE(RANDBETWEEN(1, 5), “非常に不満”, “不満”, “普通”, “満足”, “非常に満足”)
Yes/No回答の生成(70%がYesの確率):
=IF(RANDBETWEEN(1, 100) <= 70, “Yes”, “No”)
ゲーム・クイズの作成
教育やトレーニング用のコンテンツ作成に活用できます。
数学の計算問題生成:
数値1:=RANDBETWEEN(1, 20)
数値2:=RANDBETWEEN(1, 20)
問題:=A1 & ” + ” & B1 & ” = ?”
ビンゴカードの数字生成:
B列:=RANDBETWEEN(1, 15)
I列:=RANDBETWEEN(16, 30)
N列:=RANDBETWEEN(31, 45)
G列:=RANDBETWEEN(46, 60)
O列:=RANDBETWEEN(61, 75)
モンテカルロシミュレーション
リスク分析や確率計算のシミュレーションに使用します。
プロジェクト期間の不確実性分析:
最短期間:10日
最長期間:30日
シミュレーション:=RANDBETWEEN(10, 30)
在庫シミュレーション(日次需要が50-150個):
=RANDBETWEEN(50, 150)
投資リターンのシミュレーション(-10%から+20%):
=RANDBETWEEN(-10, 20) / 100
ランダムサンプリング
データ分析で無作為抽出を行う際に活用します。
1000件のデータから100件をランダム抽出:
=RANDBETWEEN(1, 1000)
=IF(COUNTIF($A$1:A1, A2) > 0, “重複”, “選択”)
部署の割り当て(4部署にランダム配属):
=CHOOSE(RANDBETWEEN(1, 4), “営業部”, “総務部”, “開発部”, “経理部”)
RANDBETWEEN関数の応用・他関数との組み合わせ
RAND関数との使い分け
小数の乱数が必要な場合は、RAND関数と組み合わせます。
0から1の間の小数(2桁):
=ROUND(RAND(), 2)
指定範囲の小数乱数(10.0から20.0):
=10 + RAND() * 10
整数と小数の組み合わせ:
=RANDBETWEEN(1, 10) + RAND()
重複しない乱数の生成
ユニークな乱数列を生成する高度なテクニックです。
方法1:RANK関数を使用
A列:=RAND()
B列:=RANK(A1, $A$1:$A$10)
方法2:大きな範囲から生成して重複チェック
=IF(COUNTIF($A$1:A1, A2) > 0, “再生成必要”, A2)
条件付き乱数生成
特定の条件下でのみ乱数を生成します。
営業日のみの日付生成:
=WORKDAY(TODAY(), RANDBETWEEN(1, 20))
偏りのある確率分布:
=IF(RAND() < 0.8, RANDBETWEEN(1, 5), RANDBETWEEN(6, 10))
文字列のランダム生成
文字や記号をランダムに選択します。
ランダムな大文字アルファベット:
=CHAR (RANDBETWEEN(65, 90))
ランダムなパスワード生成(8文字):
=CHAR (RANDBETWEEN(65,90)) & CHAR (RANDBETWEEN(97,122)) &
RANDBETWEEN(0,9) & CHAR (RANDBETWEEN(65,90)) &
CHAR (RANDBETWEEN(97,122)) & RANDBETWEEN(0,9) &
CHAR (RANDBETWEEN(33,47)) & RANDBETWEEN(0,9)
動的な範囲設定
セル参照を使用して、乱数の範囲を動的に変更します。
最小値セル(A1):10
最大値セル(B1):50
=RANDBETWEEN(A1, B1)
条件による範囲の切り替え:
=RANDBETWEEN(IF(C1=”初級”, 1, IF(C1=”中級”, 10, 50)),
IF(C1=”初級”, 10, IF(C1=”中級”, 50, 100)))
RANDBETWEEN関数のよくあるエラーと対策
値の固定化
生成された乱数を固定したい場合の対処法です。
方法1:値として貼り付け
- 乱数を生成
- コピー(Ctrl+C)
- 形式を選択して貼り付け → 値
方法2:循環参照を利用(推奨しない)
=IF(A1=””, RANDBETWEEN(1,100), A1)
方法3:VBAまたは手動での固定
1) 対象セルを選択し、F2 で編集モードに入ったあと F9 を押す
➡︎ 数式がその場で計算されて「値」に置き換わる。
2) Enter で確定すると乱数が静的値として残る。
(※複数セルの場合はコピー → 値貼り付けが簡便)
#NUM!エラーの対処
最小値が最大値より大きい場合に発生します。
誤:=RANDBETWEEN(10, 5) // エラー
正:=RANDBETWEEN(5, 10) // 正常
エラー回避:
=IF(A1 <= B1, RANDBETWEEN(A1, B1), RANDBETWEEN(B1, A1))
パフォーマンスの問題
大量のRANDBETWEEN関数は再計算時に負荷がかかります。
対策1:自動計算をオフにする
ファイル → オプション → 数式 → 手動
対策2:必要な分だけ生成して値で保存
- 必要な数だけ生成
- 値として貼り付けて保存
- 元の数式は削除
予期しない再計算
意図しないタイミングでの値の変更を防ぐ方法です。
条件付き更新:
=IF(更新フラグ=”ON”, RANDBETWEEN(1,100), 既存値)
特定の操作でのみ更新:
VBAマクロで制御することを検討
分布の偏り
完全にランダムでも、短期的には偏りが生じることがあります。
大数の法則を考慮:
サンプル数を増やすことで、より均等な分布に近づく
分布の確認:
=COUNTIF(範囲, 値) で各値の出現回数を確認
小数の乱数が必要な場合
RANDBETWEEN関数は整数のみを生成するため、小数が必要な場合は工夫が必要です。
小数第1位までの乱数(0.0から10.0):
=RANDBETWEEN(0, 100) / 10
小数第2位までの乱数(0.00から1.00):
=RANDBETWEEN(0, 100) / 100
RANDBETWEEN関数で整数の乱数を生成
RANDBETWEEN関数は、指定した最小値と最大値の間でランダムな整数を生成できるExcelの乱数関数です。データ分析やアンケート、ゲーム設計、シミュレーションなどさまざまな用途で使用されます。最小値と最大値を含む範囲内で、均等な確率で整数が選ばれるため、ランダムサンプリングや擬似実験にも対応できます。
この関数は揮発性であり、F9キーやセル編集など再計算のたびに新しい値を生成するため、値を固定したい場合はコピー&値貼り付けなどの処理が適しています。
RAND関数との組み合わせで小数の乱数も生成可能で、IF・CHOOSE・CHAR関数と連携すれば、条件付きの出力やランダムな文字列生成にも活用できます。
重複の回避や計算負荷への配慮を行えば、さまざまなシナリオで柔軟に利用できる関数です。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
AND関数の使い方は?OR関数、IF関数との組み合わせ方を解説
AND関数は、Excelやスプレッドシートにおいて、複数の条件を同時に判定するための強力なツールです。特定の条件がすべて満たされているかどうかを確認する際に利用されますが、単体使用だけでなく、OR関数やIF関数と組み合わせることで、条件を柔…
詳しくみるエクセルで行や列を全選択する方法まとめ
エクセルを利用する際、行や列を効率的に全選択することは、作業のスピード向上やデータ管理のために非常に重要です。本記事では、エクセルで行や列を一気に全選択する方法を詳しく解説します。また、一番下の行まで選択する方法や図形の全選択方法についても…
詳しくみるPPMT関数の使い方:ローン返済の元本部分を正確に計算する方法
PPMT関数は、ローンの定期支払額のうち元本返済部分を計算するエクセルの財務関数です。住宅ローンや事業融資において、各回の返済額がどれだけ元本の減少に寄与しているかを把握できます。 利息と元本の内訳を明確にすることで、繰上返済の効果シミュレ…
詳しくみるエクセルで円を千円単位に変換する方法をわかりやすく解説
エクセルを使って円を千円単位に変換するのは、実務において非常に便利な操作です。特に、予算や売上の集計時に千円単位で表示することは、視覚的にもわかりやすくなります。本記事では、エクセルで円を千円単位に変換する方法を、ステップバイステップで解説…
詳しくみるERF関数の使い方:誤差関数を計算して統計分析を行う方法
ERF関数は、誤差関数(Error Function)の値を計算する統計関数です。正規分布に関連する確率計算や、品質管理における不良品率の推定、科学技術計算での誤差評価など、高度な統計分析で使用されます。例えば、製造工程での品質のばらつきを…
詳しくみるCOLUMN関数の使い方や利用シーンをわかりやすく解説
COLUMN関数は、スプレッドシートやExcelなどの表計算ソフトで、セルの列番号を取得するための非常に便利な機能です。特に、大規模なデータセットを扱う際、特定の列の位置を動的に参照することで、数式やデータ処理を効率化できます。このリード文…
詳しくみる