【Excel】RAND関数の使い方|ランダム整数・抽出の実践例付き

スポンサーリンク

「Excelでランダムな数値を出したいんだけど、どうすればいいんだろう?」

抽選やテストデータの作成など、ランダムな値がほしい場面は意外とありますよね。そんなときに活躍するのがRAND関数です。

この記事では、RAND関数の基本から応用まで解説します。ランダムな整数の作り方やリストからの抽出テクニックなど、実務パターンをまとめました。

RAND関数とは?

RAND関数(読み方: ランド)は、0以上1未満のランダムな小数を返す関数です。

名前の由来は「Random(ランダム)」の略で、実行するたびに異なる値を返します。

たとえば =RAND() と入力すると、0.384752... のような値が表示されます。ワークシートを再計算するたびに値が変わるのが特徴です。

NOTE

RAND関数が返す値の範囲は 0以上1未満(0 <= 値 < 1)です。0が出ることはありますが、ちょうど1になることはありません。

RAND関数の書き方(構文と引数)

基本構文

=RAND()

RAND関数には引数がありません。ただし、カッコ () は必ず記述する必要があります。

引数の説明

項目内容
引数なし(カッコのみ)
戻り値0以上1未満のランダムな実数
対応バージョンExcel 2003以降すべて / Microsoft 365 / Googleスプレッドシート

引数がないので入力はとてもシンプルです。=RAND() と入力してEnterを押すだけでランダムな小数が表示されます。

RAND関数の基本的な使い方

0〜1のランダムな小数を生成する

もっとも基本的な使い方です。セルに以下の数式を入力します。

=RAND()

Enterを押すと、0.629481... のようなランダムな小数が表示されます。

数式バーを見ると =RAND() のままというのがポイントです。表示されている数値は「今の計算結果」で、再計算のたびに変わります。

ランダムな整数を生成する

実務では小数よりも整数がほしい場面の方が多いですよね。RAND関数とINT関数を組み合わせましょう。指定した範囲のランダムな整数を作れます。

=INT(RAND()*10)+1

この数式は1〜10のランダムな整数を返します。仕組みを分解してみましょう。

ステップ処理内容値の例
RAND()0以上1未満の小数を生成0.7382…
RAND()*100以上10未満に拡大7.382…
INT(RAND()*10)小数を切り捨てて整数化7
INT(RAND()*10)+11を足して1〜10の範囲にする8

任意の範囲に対応する一般式はこちらです。

=INT(RAND()*(上限-下限+1))+下限

たとえば、50〜100のランダムな整数がほしいなら =INT(RAND()*51)+50 と入力します。

TIP

ランダムな整数を作るだけなら、RANDBETWEEN関数を使う方がシンプルです。=RANDBETWEEN(1,10) と書くだけでOKです。RAND関数を使うのは、小数の乱数が必要なときや、他の関数と組み合わせたいときに向いています。

RAND関数の実践的な使い方・応用例

パターン1: リストからランダムに1件抽出する

名簿や商品リストから1件だけランダムに選びたいときに使えるパターンです。

A列にデータが10件(A2:A11)入っているとします。

=INDEX(A2:A11,INT(RAND()*10)+1)

INDEX関数がリストの「n番目」を取り出す仕組みです。INT(RAND()*10)+1 でそのnをランダムに決めています。

パターン2: ランダムに並べ替える(シャッフル)

データをランダムな順番に並べ替えたいときは、RAND関数を「並べ替えキー」として使います。

  1. データの隣の列に =RAND() を入力して下までコピー
  2. RAND列を基準にデータ全体を並べ替え(昇順でも降順でもOK)
  3. 並べ替え完了後、RAND列を削除

RANK関数と組み合わせれば、ランダムな順位を付けることもできます。

=RANK(B2,B$2:B$11)

B列にRAND関数の値が入っていれば、この数式でランダムな順位が得られます。

パターン3: 2択・3択をランダムに振り分ける

IF関数と組み合わせると、ランダムな振り分けができます。

2択の場合(GO / STOP):

=IF(RAND()<0.5,"GO","STOP")

3択の場合(A / B / C):

=IF(RAND()<0.33,"A",IF(RAND()<0.66,"B","C"))

アンケート配布グループの振り分けや、テストデータの生成に便利です。

パターン4: ランダムな日付を生成する

テストデータとして特定期間内のランダムな日付を作りたいときに使えます。

=INT(RAND()*(DATE(2026,12,31)-DATE(2026,1,1)+1))+DATE(2026,1,1)

セルの表示形式を「日付」に変更すると、2026年1月1日〜12月31日のランダムな日付が表示されます。

RAND関数の注意点(揮発性関数)

RAND関数を使うときに必ず知っておいてほしいのが、揮発性関数という特性です。

揮発性関数とは?

揮発性関数とは、再計算のたびに自動で値が更新される関数のことです。RAND関数はこの揮発性関数に該当します。

以下の操作をするだけで、RAND関数の値は勝手に変わります。

操作値が変わるか
任意のセルを編集してEnter変わる
F9キーを押す変わる
ブックを開き直す変わる
別のセルに数式を入力する変わる
セルの書式だけ変更する変わらない

「せっかく良い値が出たのに、別の作業をしたら変わってしまった…」ということが起こり得るので注意が必要です。

値を固定する方法(値貼り付け)

RAND関数の結果を固定したいときは、値貼り付けを使います。

  1. RAND関数が入ったセル範囲を選択してコピー(Ctrl+C)
  2. 同じ範囲を選択した状態で Ctrl+Shift+V(または右クリック → 「値」貼り付け)
  3. 数式が消えて、コピー時点の数値だけが残る

これで再計算しても値は変わらなくなります。抽選結果を確定させたいときなどに使ってください。

NOTE

揮発性関数が多数あるとワークシートの再計算に時間がかかることがあります。大量のRAND関数を使う場合は、計算完了後に値貼り付けで固定するのがおすすめです。

RANDBETWEENとの違い・使い分け

RAND関数と似た関数にRANDBETWEEN関数があります。どちらもランダムな値を返しますが、用途が違います。

比較項目RANDRANDBETWEEN
構文=RAND()=RANDBETWEEN(下限,上限)
引数なし下限・上限の2つ
戻り値0以上1未満の小数指定範囲の整数
主な用途確率計算、他関数との組み合わせ手軽に整数の乱数を取得
揮発性ありあり

使い分けのポイント:

  • 整数の乱数がほしいだけ → RANDBETWEEN関数がシンプルでおすすめ
  • 小数の乱数が必要 → RAND関数を使う
  • 確率で分岐したい(IF関数との組み合わせ等) → RAND関数を使う
  • 他の関数と組み合わせて柔軟に使いたい → RAND関数を使う

迷ったら「整数ならRANDBETWEEN、それ以外はRAND」と覚えておけばOKです。

よくあるエラーと対処法

RAND関数自体はシンプルなのでエラーが出ることは少ないですが、組み合わせて使うときに注意が必要です。

症状原因対処法
値が勝手に変わる揮発性関数の仕様値貼り付け(Ctrl+Shift+V)で固定する
#VALUE! エラーRAND関数の結果を文字列として処理しようとした数値として扱っているか確認する
同じ値が何度も出るランダムなので偶然の重複は起こり得る気にしなくてOK。重複を避けたい場合はRAND+RANKの組み合わせを使う
=RAND で数値が出ないカッコ () の付け忘れ=RAND() とカッコを付ける
小数点以下の桁数が多すぎるRAND関数の仕様(15桁程度の小数を返す)ROUND関数で桁数を丸める

まとめ

RAND関数は0以上1未満のランダムな小数を返すシンプルな関数です。この記事で紹介した内容をおさらいしましょう。

  • 基本: =RAND() で0〜1の乱数を生成(引数なし)
  • 整数化: =INT(RAND()*(上限-下限+1))+下限 でランダムな整数を作れる
  • 実務活用: リストからのランダム抽出、シャッフル、グループ振り分けに使える
  • 揮発性関数: 再計算のたびに値が変わるので、確定したら値貼り付けで固定する
  • 使い分け: 整数だけならRANDBETWEEN、柔軟に使うならRAND

ランダムな値が必要な場面は意外と多いので、RAND関数の使い方をマスターしておくと作業の幅が広がりますよ。

関連記事

タイトルとURLをコピーしました