
大量にランダムな数値データ作りたいけど、手入力だし時間かかるからイヤだな…

関数か…。なんか難しそうだし、結局手作業でやっちゃうんだよね…
…わかります!その気持ち。
ですが、もしまだ手作業でランダムな数値を入力しているなら、それは非常にもったいない!
実は、エクセルには驚くほど簡単に大量のランダム数値を一瞬で作り出す「RANDARRAY関数」という神ツールがあるんです。
この記事では、初心者さんでも今日から爆速化できるようになる「RANDARRAY関数の秘密」をこっそり教えちゃいます!
この記事を読めば…
- 初心者でも安心!RANDARRAY関数の基本から使い方までまるわかり
- 秒速で大量の乱数データ作成!作業時間を劇的に短縮
- もうエラーで悩まない!エラー原因と解決策を徹底解説
- 実務で即戦力!応用テクニック満載で周りと差がつく
- 似た関数との違いも明確に!最適な関数を選ぶには
さあ、あなたもRANDARRAY関数をマスターして、面倒で苦痛しかない作業から解放されませんか?

RANDARRAY関数を使いこなそう!仕事で役立つ乱数配列マスターガイド

「何ができるの?」RANDARRAY関数で実現できること
RANDARRAY関数は、エクセルの動的配列関数の一つ。指定した行数と列数の範囲に、ランダムな数値の配列を作り出してくれます。
Microsoft 365やエクセル 2021以降で使える便利な関数ですね。
RANDARRAY関数の主な特徴
- ①複数乱数を一度に生成
これが一番のポイント!
一つの関数で、リスト形式や表形式でたくさんの乱数をまとめて作れます。
- ②範囲指定
乱数の最小値と最大値を自分で決められます。
- ③整数/小数指定
整数(小数点なし)か小数(小数点あり)か、どちらの乱数を作るか選べます。
- ④動的配列
数式を一つのセルに入力するだけで、結果が周りのセルに自動で広がって表示される「スピル機能」が使えます。
コピペ不要なので狂喜乱舞(*’ω’*)
補足動的配列 = 数式を入力したセルから、結果が自動的に周囲のセルに展開される機能のこと。そして、この展開されたセル範囲を「スピル」と呼びます。
- ⑤RAND/RANDBETWEEN関数の機能包含
今まで乱数を作るのに使っていたRAND関数とRANDBETWEEN関数の機能を全部含んだうえでさらに進化し、もっと色々なことができる関数です。
似ている2種の関数との違い
RANDARRAY関数がどれだけ便利か、従来の「RAND関数」や「RANDBETWEEN関数」と比較してみましょう。
比較項目 | RAND関数 | RANDBETWEEN関数 | RANDARRAY関数 |
---|---|---|---|
出力 | 0以上1未満の乱数1つ | 指定範囲の整数乱数1つ | 指定サイズの乱数配列 |
配列出力 | 不可 | 不可 | 可能 |
複数乱数 | コピーが必要 | コピーが必要 | 1つの数式で生成可能 |
範囲指定 | 0~1のみ | 最小値・最大値を整数で指定可能 | 最小値・最大値を指定可能(整数・小数両方) |
RAND関数は「0以上1未満の小数を1つだけ返す」シンプルな関数。複数の乱数を作成するには、セルをコピーする必要があるため手間がかかる。
RANDBETWEEN関数は「指定した最小値~最大値の範囲内で整数の乱数を1つ返す」関数。小数は生成できず、複数の乱数を作る場合はセルをコピーする必要がある。
RANDARRAY関数は「指定した行数×列数の乱数を一括で生成できる」強力な関数。最小値・最大値の指定ができ、小数・整数のどちらも作れるので、より柔軟なランダム値生成が可能。
このように、RANDARRAY関数は「より少ない数式で、大量の乱数を簡単に作成できる」ことが最大の利点であることが分かります。

個人的には、複数の乱数が必要な時にコピーしなくていいのが最強ですね!
「どんな時に役立つの?」RANDARRAY関数の活用場面とメリット
RANDARRAY関数の基本:構文、引数、使い方

「どう書くの?」RANDARRAY関数の構文と引数を詳しく解説
RANDARRAY関数を使いこなすために、まずは基本の構文からしっかり見ていきましょう。
=RANDARRAY([行数], [列数], [最小値], [最大値], [整数])
引数がいっぱいあると若干抵抗感あるのって私だけですかね?w
RANDARRAY関数の引数
引数 | 説明 | 必須/任意 | 既定値 |
---|---|---|---|
行数 (rows) | 生成する乱数配列の行数です。 1以上の整数で指定します。 | 任意 | 1 |
列数 (columns) | 生成する乱数配列の列数です。 1以上の整数で指定します。 | 任意 | 1 |
最小値 (min) | 乱数の最小値を指定します。 数値か数式で入力します。 | 任意 | 0 |
最大値 (max) | 乱数の最大値を指定します。数値か数式で入力します。最小値より大きい値を指定する必要があるので注意しましょう。もし最小値以上だと、#VALUE! エラーになっちゃいます。 | 任意 | 1 |
整数 (whole_number) | 乱数を整数にするかどうかを指定します。TRUEを指定すると整数、FALSEを指定すると小数になります。 | 任意 | FALSE (小数) |
RANDARRAY関数は引数を省略することもできます。省略した場合、どうなるか確認しておきましょう。
「どうやって使うの?」いくつか使用例を紹介
「百聞は一見に如かず」ということで、具体的な例を見ていきましょう!
まずは基本的な例から
- ①指定サイズの乱数表を作るSQL
=RANDARRAY(5,3)
この数式をA1セルに入力すると、A1からC5の範囲に5行×3列の乱数表が作られます(0~1の小数)。
- ②単一の乱数を生成する
=RANDARRAY()
=RAND()このどちらの数式でも、0~1の乱数を一つだけ生成できます。
ただ、単一の乱数を生成するだけなら、 RANDARRAY() よりも RAND() 関数を使う方がエクセルの計算負荷が少なくて済むので効率的ですね。
RANDARRAY() は、配列数式の一部として使ったり、他の動的配列関数と組み合わせて使うと、その真価を発揮します。
- ③範囲を指定して整数の乱数を得るSQL
=RANDARRAY(10,1,1,100,TRUE)
この数式だと、1~100の整数の乱数を10個生成します。
SQL=RANDARRAY(10,1,5,10,TRUE)
こちらは5~10の整数の乱数を10個生成します。
ちなみに、TRUEの代わりに1、FALSEの代わりに0を指定することもできるので覚えておきましょう!
- ④引数にセル参照を使う
例えば、セルA1からA5に、それぞれ「行数」「列数」「最小値」「最大値」「整数指定」の値を入力しておきます。
そして、どこかのセルに
SQL=RANDARRAY(A1,A2,A3,A4,A5)
と入力すると、セルA1~A5に入力された値に基づいて乱数配列が生成されます。
セルA1~A5の値を変更すると、RANDARRAY関数の結果も自動的に変わるので、色々なパターンを試したい時に便利ですね。
ただし、スピル範囲が意図せず広がってしまう可能性もあるので注意してください!
- ⑤特定の候補からランダムに選択するSQL
=CHOOSE(RANDARRAY(5,1,1,3,TRUE),10,20,30)
この数式を使うと、10,20,30の3つの候補の中からどれかの値をランダムに5つ生成します。
次からは、特定のシーンごとの使い方をご紹介しますね!
サンプルデータ生成:商品マスターの例
- ①項目名として「商品ID」「単価」「カテゴリ」があるとします
- ②商品IDをランダム作成SQL
=RANDARRAY(10,1,1,99,TRUE)
最小値1、最大値99の整数を、1つの列に10行分、ランダムで作成。
A2セルに上記数式を入力した結果が以下↓
- ③単価をランダム作成SQL
=RANDARRAY(10,1,100,10000,TRUE)
最小値100、最大値10000の整数を、1つの列に10行分、ランダムで作成。
B2セルに上記数式を入力した結果が以下↓
- ④カテゴリをランダム作成SQL
=CHOOSE(RANDARRAY(10,1,1,3,TRUE),"食品","飲料","雑貨")
最小値1、最大値3の整数を、1つの列に10行分ランダムで作り、CHOOSE関数で乱数に対応して「食品」「飲料」「雑貨」のどれかをランダムに選ぶ、というもの。
C2セルに上記数式を入力した結果が以下↓
最小限の手間で、種類の違うランダムデータを作ることができました!
「データ作成時間を大幅に短縮できる」「入力ミスを減らせる」このふたつを同時に実現できるからスゴいですよね。
ランダムな並び替えや抽出:名簿シャッフルとランダム抽出の例
次は、名簿のシャッフルとランダム抽出の例を見てみましょう。
- ①名簿データ
A2セルから10人分、入力されているとします。
- ②名簿のシャッフル
B2セルに
SQL=SORTBY(A2:A11,RANDARRAY(ROWS(A2:A11)))
と入力すると、B列以降にシャッフルされた名簿がズラッと表示されます。
数式解説この関数は「A2:A11のデータをランダムな順番に並べ替える」というもの。
・RANDARRAY(ROWS(A2:A11))
→ A2:A11 の行数と同じ数のランダムな値を作る。
・SORTBY(A2:A11, RANDARRAY(…))
→ そのランダムな値を基準に、A2:A11 のデータをシャッフルする。 - ③ランダム抽出
さらに以下のように関数を追加することで、ランダムに2名だけ表示させることもできます。
今回はC2セルに入力してみますね。
SQL=INDEX(SORTBY(A2:A11,RANDARRAY(ROWS(A2:A11))),SEQUENCE(2))
数式解説この関数は「A2:A11のデータをランダムに並べ替え、その中から上位2つを取り出す」というもの。
・RANDARRAY(ROWS(A2:A11))
→ A2:A11 の行数と同じ数のランダムな値を作る。
・SORTBY(A2:A11, RANDARRAY(…))
→ そのランダムな値を基準に、A2:A11 のデータをシャッフルする。
・INDEX(…, SEQUENCE(2))
→ 並べ替えたデータの最初の2つを取り出す。つまり「A2:A11の中からランダムに2つ選ぶ」という動作になります!
- ④おまけ
ちなみに、「リストの並べ替えをせずに単純に名簿からランダムに2人選びたいだけ」であれば、以下の数式でも機能します!
SQL=INDEX(A2:A11,RANDARRAY(2,1,1,ROWS(A2:A11),TRUE))

名簿のシャッフルやランダム抽出が「関数一つ」で「あっという間」に、しかも「正確にできる」ってすごくないですか?
抽出する人数を変えたい時も、数式をちょっと修正するだけでOKです!
シミュレーション・分析:在庫シミュレーション例
お次は、在庫のシミュレーションを。
- ①A列に日付を入力
今回は10日分入力してみます。
- ②最初の在庫数を入力
B1セルに「100」と入力します。
- ③数式を入力してコピー
B2セルに以下を入力し、B10セルまでコピーします。
SQL=B1+RANDARRAY(1,1,-10,10,TRUE)
数式解説・RANDARRAY(1,1,-10,10,TRUE)
→ -10から10までの整数の乱数を一つ作成それを前日の在庫数(B1セル)に足すことで、在庫が毎日ランダムに変動する様子をシミュレーションしているわけですね。
この数式を使用することで「在庫が毎日どんな風に変わっていくのか」ランダムなシミュレーションが簡単にできます。
もしグラフで在庫の推移を見たいのであれば、「Alt → N → R」の順番に押せばサクッとグラフ化できますよ!

重複なしの乱数リストの作成:SEQUENCE関数と組み合わせて
超どうでもいいですが、↑このタイトルがちょっと料理名っぽいなと思いましたw
「一本の小麦 ~芳醇な出汁の余韻とともに~」的なwww

はい。話を戻しますが、重複なしの乱数リストが欲しい時はSEQUENCE関数と組み合わせましょう。
=SORTBY(SEQUENCE(10),RANDARRAY(10,1))
この数式を好きなセルに入力するだけで、重複なしの乱数リストが完成します!

・SEQUENCE(10)
→1から10までの連番を作成
・RANDARRAY(10,1)
→10個の乱数を作成
・SORTBY(SEQUENCE(10),RANDARRAY(10,1))
→SEQUENCE(10)で作った連番を、RANDARRAY(10,1)で作った乱数を基準にしてランダムに並び替える、という意味になります。
応用例として、大量の「重複なし抽選番号リスト」を作る方法が↓
=SORTBY(SEQUENCE(1000,1,1001),RANDARRAY(1000,1))
この数式を入力すると、1001から始まる1000個の重複なし番号リストが完成します!

これだけ簡単に大量の重複なしリストを作れるなんて、感動ですよね!
RANDARRAY関数は、引数の組み合わせ次第で本当に色々な乱数データが簡単に作れるようになるんです!
作業効率アップ!RANDARRAY関数の使いこなし術

「これは便利!」知ってると役立つテクニック
乱数で作成したデータの「固定」
RANDARRAYに限らず、関数で作った乱数は再計算するたびに値が変わっちゃいます。「今の乱数のままで確定させたい!」 という場合は、 値の貼り付けで固定するのがオススメですね。
・対象範囲をコピー
・右クリックから値貼り付けを選択する

これで、数式が値に置き換わって乱数が固定されます。
ちなみに、最速で値貼り付けをしたいなら「Ctrl+Shift+V」を押しましょう!

バージョンの問題で使用できない場合は「Ctrl + Alt + V」→ V → Enter が確実です。
乱数の出力を細かく制御するテクニック
小数点以下の桁数を指定する
=ROUND(RANDARRAY(5,3),2)
このようにROUND関数と組み合わせると、小数点以下2桁の乱数を作ることができます。

乱数の範囲を調整する
=RANDARRAY(5,3)*10-5
この数式だと、-5~+5 の範囲の乱数を作ることができます。

計算の過程としては、
①RANDARRAY(5,3) は「0 ≦ x < 1」の範囲の乱数を生成
②「*10」 で「0 ≦ x < 10」にスケールアップ
③「-5」で範囲を「-5 ≦ x < 5」にシフト
という流れですね!
正規分布に従う乱数を生成する
ちょっと複雑な数式ですが、正規分布に従う乱数を作ることもできます。
統計分析やシミュレーションなどでよく使われる、自然界に多く見られる確率分布に従う乱数のこと。すごく簡単に言うと「良く出る数」と「めったに出ない数」が決まっている乱数のことですね。
【例】
日本人の大人の身長の平均は170㎝くらい。それと比べると、150㎝以下や、190㎝以上の人は少ない。こういう「真ん中の数がたくさん出て、両端の数は少ない」形をした分布が正規分布。
【正規分布を使う場面】
天気予報での気温変化予測、ゲームのキャラのステータスをランダムに作成、AIにデータを学習させる、といった場面で使います。
=SQRT(-2*LN(RANDARRAY(5,3)))*COS(2*PI()*RANDARRAY(5,3))

・RANDARRAY(5,3)
→ 0 以上 1 未満の一様乱数(5行3列)
・LN(RANDARRAY(5,3))
→ RANDARRAY の値を対数変換(負の値になる)
・-2 * LN(RANDARRAY(5,3))
→ ボックス=ミュラー法に必要な変換
・SQRT(-2 * LN(RANDARRAY(5,3)))
→ 標準正規分布の偏差の部分
・COS(2 * PI() * RANDARRAY(5,3))
→ 角度の変換
この数式は ボックス=ミュラー法 に基づいた標準正規分布(平均0、標準偏差1)のランダムな数値を 5×3 の範囲で生成します。
日時や特殊な乱数を生成する
ランダムな日付
=RANDARRAY(10,1,DATE(2024,1,1),DATE(2024,1,31),TRUE)
このようにDATE関数と組み合わせて表示形式を日付に設定すると、指定した期間内でのランダムな日付を生成できます。

ランダムな時刻
=RANDARRAY(10,1,TIME(9,0,0),TIME(17,0,0),FALSE)
このようにTIME関数と組み合わせて表示形式を時刻に設定すれば、午前9時から午後5時までのランダムな時刻を生成できます。

RANDARRAY関数エラー解決:原因と対処法まとめ

「エラーが出た!」代表的なエラーとその原因を解説
「うーん…よくわからないから使うのやめた!」とならないように、よくあるエラーとその原因、そして対処法をまとめてみました。
#VALUE! エラー
原因: 引数の指定ミス
VALUE! エラーは引数の指定に問題がある時に表示されます。 よくある原因は、
・最小値 >= 最大値 になっている
・数値以外の値を入力してしまっている
などですね。
対処法: 引数を見直して、正しい値・順序で指定する
引数の指定を見直して、正しい値になっているか、引数の順番は間違っていないか、などを確認してみましょう。
#SPILL! エラー
原因: スピル範囲にデータがある、シートの端までスピルしようとしている
SPILL! エラーは、スピル範囲に邪魔なデータがあったり、シートの端までスピルしようとした時に表示されます。
対処法: スピル範囲を空ける、配列サイズを小さくする
スピル範囲にデータがある時は、スピル範囲に入り込んでしまっているデータを削除するか、別の場所に移動しましょう。
シートの端までスピルしようとしている場合は、生成する配列のサイズを小さくしてみてください。
#NAME? エラー
原因: エクセルのバージョンが古い、関数名のスペルミス
NAME? エラーは、関数名がエクセルで認識されない時に表示されます。 RANDARRAY関数の場合は、
・バージョンが古い(2019 以前のバージョンでは RANDARRAY関数は使えません)
・関数名のスペルミス(RANDARRAY と正しく入力できているか確認しましょう)
などが原因として考えられます。
#REF! エラー
原因: 外部参照エラー、セル参照の不整合
REF! エラーは、参照しているセルが正しくない時に表示されます。 RANDARRAY関数で #REF! エラーが出る場合は、
・参照先のブックが閉じている (外部のエクセルファイルを参照している場合)
・セル参照が間違っている
などが原因かと。
対処法: 参照元ブックを開く、値貼り付けで固定する、セル参照を修正する
外部のエクセルファイルを参照している場合は、そのファイルを開いてみてください。
参照元データが頻繁に変わらない場合は、参照元データを値貼り付けで固定してしまうのも一つの手です。
数式中のセル参照が正しいかどうか、もう一度確認してみましょう。(うっかりミスよくあります)
#CALC! エラー
原因: 行数・列数に0以下を指定、数値として評価できない参照
CALC! エラーは、計算処理で問題が発生した場合に表示されます。 RANDARRAY関数の場合は、
・行数・列数に0以下の値を指定している
・行数・列数の引数に、数値として評価できないセル参照を指定している (例えば、空白セルを参照しているなど)
などが原因として考えられます。
指定している引数の確認と、参照先のセルをチェックしましょう。
最後におまけ知識
エクセルにおける他の乱数生成方法との比較
エクセルには、RANDARRAY関数以外にも乱数を生成する方法があります。それぞれの方法のメリット・デメリットを簡単に比較してみました。
方法 | メリット | デメリット | 備考 |
---|---|---|---|
RANDARRAY関数 | 大量乱数生成が簡単、動的配列、引数の指定が色々できる | 古いエクセルバージョンだと使えない、擬似乱数 | 今回解説した関数 |
RAND関数 + オートフィル | どのエクセルバージョンでも使える | 大量の乱数を作るのがちょっと面倒、セルごとに数式を入力する必要がある | 古いエクセルバージョンでの代替手段の一つ |
RANDBETWEEN関数 + オートフィル | どのエクセルバージョンでも使える、整数の乱数を作るのに特化 | 大量の乱数を作るのがちょっと面倒、セルごとに数式を入力する必要がある、小数の乱数は作れない | 古いエクセルバージョンでの代替手段、整数の乱数に限定 |
VBA (Visual Basic for Applications) | 乱数生成の細かな制御ができる (初期値を設定したり、乱数のアルゴリズムを選んだり)、処理が速い | VBAの知識が必要、セキュリティ設定に注意が必要 | もっと高度な乱数制御をしたい場合、大量のデータを処理したい場合 |
Power Query | 大量のデータを扱うのが得意、色々なデータソースと連携できる | Power Queryの知識が必要、リアルタイムに乱数を更新するのには向かない | 大量のデータを扱う場合、外部データと連携したい場合 |
今回の解説はここまで。 RANDARRAY関数、使いこなせそうでしょうか?
色々な機能があって最初はちょっと戸惑うかもしれませんが、一つ一つ試していくうちに、きっと便利さを実感できるはずです!
まとめ

RANDARRAY関数は、大量のランダムな数値を効率的に作成できる強力な味方です。
今まで手作業で時間をかけていたデータ作成も、この関数を使えば一瞬で完了。作業効率を劇的に向上させ、時間短縮に大きく貢献します。
この記事では、RANDARRAY関数の基本から応用まで、初心者にも分かりやすく解説しました。
- 複数乱数を一気に生成し、リストや表形式で出力可能
- 乱数の範囲や整数/小数も自由に指定可能
- 動的配列で自動的に範囲が拡張、コピー&ペースト不要
- 従来のRAND/RANDBETWEEN関数の上位機能搭載
今までデータ作成に費やしていた時間をより大事な仕事に使い、爆速で仕事を終わらせて定時で帰りましょう!

最後までお読みいただき、ありがとうございました!
ぜひRANDARRAY関数をあなたの武器にして、エクセルをもっと便利に活用してくださいね!

