【Excel】エクセルで数字をランダムに入力する関数(乱数)
エクセルで抽選番号、テスト用データ、売上予測のシミュレーションなどを作る際には、数字をランダムに入力したい場面があります。
手作業で数値を入力すると時間がかかるうえ、偏りも生まれやすいため、RAND関数やRANDBETWEEN関数を使う方法が便利です。
小数の乱数、指定した範囲の整数、重複しない連番に近いランダムな並びなど、目的に応じて関数を使い分けましょう。
エクセルで乱数を入力するときの基本です。
・小数の乱数はRAND関数を使用します。
・指定範囲の整数はRANDBETWEEN関数を使用します。
・再計算で値が変わるため、必要に応じて値貼り付けで固定します。
この記事では、Excelで数字をランダムに入力する関数の使い方、数式の考え方、乱数を固定する方法まで順番に解説していきます。
エクセルで数字をランダムに入力する基本関数
それではまず、エクセルでランダムな数字を入力する代表的な関数について解説していきます。
| A列 | B列 | C列 |
|---|---|---|
| 番号 | RAND関数 | RANDBETWEEN関数 |
| 1 | 0.483726 | 37 |
| 2 | 0.921504 | 82 |
RAND関数による小数の乱数
RAND関数は、0以上1未満の小数をランダムに返す関数です。
セルB2に数式を入力すると、0.483726のような小数が表示されます。
=RAND()
RAND関数には引数を指定しないことが特徴です。
0は含まれますが、1は含まれないため、表示される値は0以上1未満になります。
割合、確率、ランダムな比率、シミュレーション用の係数を作成したいときに役立つ関数です。
表示桁数が多すぎる場合は、ホームタブの小数点以下の表示桁数を減らすボタンで見やすく調整できます。
小数を丸めても、セル内部には元の細かい乱数が保持される点には注意が必要です。

たとえば表示形式を小数点以下2桁にすると0.48と表示されますが、計算では0.483726のような値が使われます。
計算結果の見た目と実際の値を一致させたい場合は、ROUND関数も組み合わせましょう。
RANDBETWEEN関数による整数の乱数
RANDBETWEEN関数は、開始値と終了値の間にある整数をランダムに返す関数です。
1から100までの整数を入力したい場合は、セルC2に次の数式を入力します。
=RANDBETWEEN(1,100)
開始値と終了値の両方が結果に含まれることがRANDBETWEEN関数の重要なポイントです。
この数式では1、2、3から100までのいずれかの整数が表示されます。
抽選番号、サイコロの目、アンケート用のランダムなID、テストデータの件数などに利用しやすいでしょう。

開始値よりも終了値を小さく指定するとエラーになるため、数値の順番を確認してください。
負の数を含む範囲も指定できます。
たとえばマイナス10から10までの乱数であれば、=RANDBETWEEN(-10,10)と入力します。
数式をコピーするオートフィル
複数行に乱数を入力したい場合は、最初のセルに数式を入れてからオートフィルを使います。
サンプルデータでは1行目を見出しにし、B2またはC2へ数式を入力する流れです。
数式を入力したセルの右下に表示される小さな四角をフィルハンドルと呼びます。
フィルハンドルを下方向へドラッグすると、数式がB3、B4、B5へ自動的にコピーされます。
RAND関数とRANDBETWEEN関数は、コピー先ごとに異なる乱数を生成します。
隣に連続したデータがある場合は、フィルハンドルをダブルクリックして最終行までコピーする方法も便利です。
数式をコピーした後は、乱数が必要な行数だけ正しく入っているか確認しましょう。
【操作のポイント】乱数の数式はB2など最初のデータ行へ入力し、1行目の見出しセルには入力しません。
RAND関数で指定範囲の数字を作る数式
続いては、RAND関数を利用して任意の範囲にある数字を作る方法を確認していきます。
| A列 | B列 | C列 |
|---|---|---|
| 番号 | 1から10の小数 | 1から10の整数 |
| 1 | 6.42 | 6 |
| 2 | 9.13 | 9 |
最小値と最大値を指定する計算式

RAND関数の結果を拡大すると、0以上1未満以外の範囲にも変換できます。
最小値をa、最大値をbと考えた場合、基本となる計算式は次の形です。
=RAND()*(b-a)+a
たとえば1以上10未満の小数を作るには、次の数式を使用します。
=RAND()*(10-1)+1
RAND関数で作る上限値は原則として含まれないため、10.000000になることはありません。
この数式はRAND関数で0から1未満の割合を作り、その幅を9倍してから1を加える仕組みです。
最小値を50、最大値を80に変えたい場合は、=RAND()*(80-50)+50とします。
入力する範囲を数式の中で直接指定する方法は手軽ですが、後から条件を変える作業には向かないことがあります。
整数へ変換するINT関数とROUND関数
RAND関数で作った小数を整数にしたいときは、INT関数やROUND関数を組み合わせます。
1から10までの整数をランダムに返す代表的な数式は次のとおりです。
=INT(RAND()*10)+1
RAND関数の結果を10倍すると0以上10未満になり、INT関数で小数部分を切り捨てると0から9になります。
最後に1を足すことで、結果を1から10へ移動させる計算です。
INT関数は小数点以下を切り捨てる関数であり、四捨五入ではありません。
小数点以下2桁の乱数を作りたい場合は、=ROUND(RAND()*100,2)のようにROUND関数を使えます。
ただし、ROUND関数で0から100の範囲を作る場合も100が必ず出るわけではないため、上限を含める必要がある用途ではRANDBETWEEN関数のほうが分かりやすいでしょう。

セル参照で範囲を変更しやすくする方法
乱数の範囲を後から変更する可能性がある場合は、最小値と最大値を別セルに入力して参照します。
たとえばE1に最小値、F1に最大値を入力し、B2に次の数式を入力します。
=RANDBETWEEN($E$1,$F$1)
$記号を付けた絶対参照にすると、数式を下へコピーしてもE1とF1を固定して参照できます。
条件をセルへ分けると、数式を編集せずに乱数の範囲だけ変更できます。
部署ごと、月ごと、商品区分ごとに条件を変える表では特に便利です。
範囲の入力セルには、最小値と最大値であることが分かる見出しを付けておきましょう。
【操作のポイント】複数セルへコピーする数式では、範囲を指定するセルに絶対参照を付けると参照ずれを防げます。
ランダムな数字を固定する値貼り付け
続いては、再計算で変化する乱数を固定する方法を確認していきます。
| A列 | B列 | C列 |
|---|---|---|
| 番号 | 乱数の数式 | 固定後の値 |
| 1 | =RANDBETWEEN(1,100) | 37 |
| 2 | =RANDBETWEEN(1,100) | 82 |
乱数が勝手に変わる再計算の仕組み
RAND関数とRANDBETWEEN関数は、エクセルの再計算が行われるたびに新しい数値へ変化します。
別のセルで数式を入力したとき、データを修正したとき、ブックを開き直したときにも値が変わることがあります。
乱数関数は揮発性関数のため、抽選結果のように残す必要がある値はそのまま保存してはいけません。
F9キーを押して再計算を実行した場合も、乱数は更新されます。
乱数を作る段階では便利な性質ですが、確定後の数値が変わると困る業務では注意が必要です。
まずは必要な件数の乱数を生成し、内容を確認してから値へ置き換える流れが安全です。
コピーと値貼り付けの操作手順
乱数を固定するには、乱数が入ったセル範囲をコピーしてから値として貼り付けます。
たとえばB2からB11までの乱数を固定する場合は、その範囲を選択してCtrlキーとCキーを押します。
続いて同じ範囲を右クリックし、貼り付けのオプションから値を選択します。
キーボード操作では、CtrlキーとAltキーとVキーを押して形式を選択する画面を開き、値を選んで確定する方法もあります。
値貼り付けが完了すると、数式バーには=RANDBETWEEN(1,100)ではなく、37のような数値だけが表示されます。
数式バーで数式が消えて数値だけになれば、乱数の固定は成功です。
固定前に確認したい抽選結果
乱数を固定する前には、数値の範囲、件数、重複の有無を確認しましょう。
たとえば1から100の中から10個を抽出する用途であれば、同じ数字が複数回出る可能性があります。
RANDBETWEEN関数は毎回独立した乱数を作るため、重複を自動では除外しません。
抽選番号の重複が許されない場合は、後述するRAND関数と並べ替えを使う方法が適しています。
一度値貼り付けをすると、元の数式を戻すには再入力が必要になることがあります。
必要なら固定前のブックを別名で保存しておくと安心です。
【操作のポイント】抽選結果を確定する直前に、コピーして値貼り付けを実行すると再計算による変更を防げます。
重複しないランダムな順番の作り方
続いては、同じ数字を重ねずにランダムな順番を作成する方法を確認していきます。
| A列 | B列 | C列 |
|---|---|---|
| 元の番号 | 並べ替え用乱数 | ランダム順 |
| 1 | 0.8134 | 4 |
| 2 | 0.1057 | 1 |
連番とRAND関数を並べる準備
重複しないランダムな番号を作りたい場合は、先に元となる連番を用意します。
A1に番号という見出しを入力し、A2からA11に1から10までの連番を入力しましょう。
B1には並べ替え用乱数と入力し、B2に=RAND()を入力します。
その後、B2の数式をB11までオートフィルでコピーします。
A列の連番そのものは重複しないため、行をランダムな順序へ並べ替えれば重複なしの抽選になります。
この方法は、参加者名簿、商品リスト、担当順、問題の出題順をシャッフルしたい場合にも使えます。
乱数列を基準にする並べ替え
A列とB列を含む表全体を選択してから、データタブの並べ替えを実行します。
並べ替えの基準には、B列の並べ替え用乱数を選択します。
順序は昇順でも降順でも問題ありません。
乱数の大小によって行の順番が入れ替わるため、A列にあった番号がランダム順になります。
B列だけを選択して並べ替えると、番号と乱数の対応が崩れるため、必ず表全体を選択します。
並べ替え後はC列へ順位を振る、またはB列を非表示にするなど、用途に合わせて表を整えましょう。
SORTBY関数を使う動的配列の方法
Microsoft 365やExcel 2021以降では、SORTBY関数を使って別の場所にランダム順の一覧を表示できます。
A2からA11に元データがある場合、C2に次の数式を入力します。
=SORTBY(A2:A11,RANDARRAY(ROWS(A2:A11)))
RANDARRAY関数でデータ件数と同じ数の乱数を作り、SORTBY関数がその乱数を基準にA列の値を並べ替えます。
動的配列対応のExcelでは、数式を1つ入力するだけで結果が下方向へ自動展開されます。
ただし、この方法も再計算で順番が変わります。
抽選結果として残す場合は、表示された結果をコピーして値貼り付けで固定してください。
【操作のポイント】重複なしの抽選では、RANDBETWEEN関数を繰り返すより、元の一覧を乱数で並べ替える方法が確実です。
ランダムな日付と時刻を入力する関数
続いては、数値として扱われる日付や時刻をランダムに作る方法を確認していきます。
| A列 | B列 | C列 |
|---|---|---|
| 番号 | ランダムな日付 | ランダムな時刻 |
| 1 | 2026/04/12 | 14:35 |
| 2 | 2026/08/27 | 09:12 |
開始日と終了日によるランダムな日付
エクセルでは日付も連続したシリアル値として保存されているため、RANDBETWEEN関数でランダムな日付を作成できます。
2026年4月1日から2026年9月30日までの日付を作る数式は次のとおりです。
=RANDBETWEEN(DATE(2026,4,1),DATE(2026,9,30))
数式を入力した直後に大きな数字が表示された場合は、セルの表示形式を日付へ変更します。
ホームタブの表示形式から短い日付を選ぶと、2026/04/12のように表示されます。
DATE関数を使うと、年月日を明確に指定でき、日付の入力ミスを減らせます。
開始日と終了日を別セルに入力し、=RANDBETWEEN($E$1,$F$1)のように参照する方法も実務向きです。
RAND関数によるランダムな時刻
時刻は1日を1とした小数で管理されているため、RAND関数でランダムな時刻を作れます。
0時00分から23時59分までの時刻を作りたい場合は、セルC2に=RAND()を入力します。
その後、セルの表示形式を時刻の形式へ変更してください。
時と分だけを見せたい場合は、表示形式にhh:mmを設定すると見やすくなります。
RAND関数の0以上1未満という値は、時刻では午前0時から翌日の直前までを表します。
9時から17時の間だけでランダムな時刻を作るなら、=RAND()*(TIME(17,0,0)-TIME(9,0,0))+TIME(9,0,0)と入力します。
日付と時刻を組み合わせる方法
ランダムな日時を作りたい場合は、ランダムな日付とランダムな時刻を足し算します。
たとえば2026年4月1日から2026年9月30日までの任意の日時を作る数式は次の形です。
=RANDBETWEEN(DATE(2026,4,1),DATE(2026,9,30))+RAND()
表示形式をyyyy/m/d h:mmにすると、日付と時刻を同じセルで確認できます。
テスト用の予約データ、入退室記録の検証、注文履歴のサンプル作成などで活用できます。
ただし、実際の業務データのように土日や営業時間外を除きたい場合は、条件を追加した数式や別の判定列が必要です。
【操作のポイント】日付や時刻の乱数は表示形式を整えてから確認し、目的の範囲に収まっているかをチェックします。
まとめ エクセルで数字をランダムに入力する関数
エクセルで数字をランダムに入力するには、用途に応じてRAND関数とRANDBETWEEN関数を使い分けます。
0以上1未満の小数が必要な場合はRAND関数が基本です。
1から100のように範囲を指定した整数が必要な場合は、RANDBETWEEN関数を使いましょう。
RAND関数に計算式を組み合わせれば、任意の範囲にある小数や整数も作成できます。
RAND関数とRANDBETWEEN関数は再計算で数字が変わるため、結果を残すときは値貼り付けが必要です。
重複なしのランダムな順番を作りたい場合は、連番の横にRAND関数を入力して表全体を並べ替える方法が役立ちます。
日付や時刻もエクセルでは数値として扱われるため、乱数関数を利用してテストデータを作成できます。
目的に合った数式を使い、必要なタイミングで数値を固定しながら、ランダムなデータ作成を効率化していきましょう。