スプレッドシートのRAND関数の使い方|乱数を固定する方法も解説

スポンサーリンク

「ランダムに抽選したいのに、毎回同じ人を手作業で選んでいる…」そんな経験はありませんか?

手作業だと公平性の説明もむずかしいですよね。

GoogleスプレッドシートのRAND関数を使えば、乱数をかんたんに生成できます。抽選やシャッフルも数式ひとつで実現できますよ。

この記事では、RAND関数の基本から乱数の固定方法、実務での活用パターンまで解説します。

RAND関数とは?スプレッドシートで乱数を生成する関数

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

入力するたびに異なる値が出るので、抽選やデータのシャッフルに使えます。

戻り値は「0以上1未満」の小数

RAND関数が返す値の範囲は 0 ≤ 値 < 1 です。

たとえば 0.2847...0.9163... のような小数が返ります。0ちょうどが出ることはありますが、1は出ません。

この小数をもとに、整数への変換やランダム抽出に応用できます。

引数なしで使える

RAND関数の構文はとてもシンプルです。

=RAND()

引数(カッコの中に入れる値)は不要です。カッコの中は空のまま入力してください。

セルに =RAND() と入力してEnterを押すだけで乱数が表示されます。

RAND関数の基本的な使い方

RAND関数の基本操作を確認しましょう。

セルに入力するだけで乱数が生成される

使い方は3ステップです。

  1. 任意のセルをクリックする
  2. =RAND() と入力する
  3. Enterキーを押す

これだけで、0〜1未満の乱数がセルに表示されます。複数のセルに入力すれば、それぞれ独立した乱数になりますよ。

計算のたびに値が変わる(揮発性関数)

RAND関数には重要な特徴があります。スプレッドシートが再計算されるたびに値が変わるという点です。

このような関数を揮発性関数と呼びます。再計算のタイミングは次のとおりです。

  • どこかのセルを編集したとき
  • シートを開いたとき
  • F5キーで手動再計算したとき

つまり、何か操作するたびに乱数が変わります。便利な反面、値を保持したい場面では注意が必要です。

揮発性関数の注意点と乱数の固定方法

RAND関数は便利ですが、揮発性ゆえの落とし穴があります。

なぜ再計算されるの?原因と被害事例

通常の関数は、参照先のセルが変わったときだけ再計算されます。しかし揮発性関数は、シート上のどこかが変更されるだけで再計算が走ります。

これが問題になる具体的な場面を紹介します。

  • 抽選結果が消える: RAND関数で当選者を決めた後、別のセルを編集したら結果が変わってしまった
  • 並び順が崩れる: シャッフル結果を確認中に、うっかり操作して順番が変わった
  • 再現性がない: 同じ乱数を再度出すことができない

「さっきの結果をもう一度見たい」と思っても、手遅れです。固定していなければ元の値は取り戻せません。

値貼り付けで固定する方法

乱数を固定するには、数式を値に変換します。手順は次のとおりです。

  1. RAND関数が入ったセル範囲を選択する
  2. Ctrl + C(Macは Cmd + C)でコピーする
  3. そのまま Ctrl + Shift + V(Macは Cmd + Shift + V)で値のみ貼り付け

これで数式が消えて、数値として確定されます。再計算しても値は変わりません。

コピー: Ctrl + C
値貼り付け: Ctrl + Shift + V

抽選やシャッフルの結果を確定させたいときは、結果が出たらすぐに値貼り付けを習慣にしましょう。

実務で使えるRAND活用パターン

RAND関数は、他の関数と組み合わせることで活用の幅が広がります。よく使うパターンを紹介します。

0〜100の整数に変換する(INT・ROUND組み合わせ)

RAND関数の小数を整数に変換するには、INT関数を組み合わせます。

=INT(RAND()*101)

RAND()*101 で0以上101未満の小数を作り、INT関数で小数点以下を切り捨てます。結果は0〜100の整数です。

サイコロ(1〜6)を再現したい場合はこちらです。

=INT(RAND()*6)+1

INT(RAND()*6) で0〜5の整数を作り、+1で1〜6にシフトしています。

ROUND関数を使う方法もあります。ただしROUNDは四捨五入のため、端の値(0と100)の出現確率が他より低くなります。均等な分布が必要ならINT関数を使いましょう。

任意の範囲の乱数に変換する公式

「10〜50の整数をランダムに出したい」など、範囲を指定したい場合の公式です。

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

たとえば10〜50の整数なら、次のように書きます。

=INT(RAND()*41)+10
やりたいこと数式結果の範囲
1〜6の整数=INT(RAND()*6)+11, 2, 3, 4, 5, 6
0〜100の整数=INT(RAND()*101)0〜100
10〜50の整数=INT(RAND()*41)+1010〜50
1〜100の整数=INT(RAND()*100)+11〜100

公式を覚えなくても、この表を見れば応用できますよ。

ランダム抽出・シャッフルへの応用(SORT+RAND)

実務で特に便利なのが、リストのシャッフルです。SORT関数とRAND関数を組み合わせます。

A1:A10に名前リストが入っている場合の数式です。

=SORT(A1:A10, ARRAYFORMULA(RAND()), TRUE)

ちょっとむずかしく見えますが、やっていることはシンプルです。

  • ARRAYFORMULA(RAND()): 各行にランダムな数値を割り当てる
  • SORT(...): そのランダム数値で並び替える

結果として、名前リストがランダムな順番で表示されます。発表順の決定や座席のシャッフルに使えますよ。

上位N件だけ抽出したい場合は、SORT結果の先頭N行を使います。たとえば10人から3人を抽選するなら、シャッフル結果の上位3名を採用するだけです。

RANDBETWEENとの違いと使い分け

RAND関数と似た関数にRANDBETWEEN関数があります。違いを整理しておきましょう。

RANDBETWEENは整数に特化

比較項目RAND()RANDBETWEEN(下限, 上限)
引数なし下限・上限の2つ
戻り値0以上1未満の小数指定範囲の整数
揮発性ありあり
典型的な用途確率計算・シャッフルサイコロ・くじ引き

RANDBETWEEN関数は =RANDBETWEEN(1,6) のように書きます。引数で範囲を直接指定できるので、整数の乱数が欲しいときは直感的です。

どちらを選ぶべきか

迷ったときは、次の基準で選んでみてください。

  • RANDBETWEEN: 整数の乱数がほしい。範囲が決まっている。シンプルに使いたい
  • RAND: 小数の乱数がほしい。確率の計算に使いたい。他の関数と組み合わせて加工したい

「1〜6の整数」のような単純なケースはRANDBETWEENが手軽です。一方、シャッフルや確率シミュレーションにはRAND関数が向いています。

よくあるエラーと対処法

RAND関数はシンプルですが、つまずきやすいポイントもあります。

カッコ内に引数を入れてしまった

=RAND(10) のように引数を入れるとエラーになります。RAND関数は引数不要です。=RAND() とカッコ内を空にしてください。

乱数が勝手に変わる

これはエラーではなく揮発性関数の正常な動作です。値を固定したい場合は Ctrl + Shift + V の値貼り付けで対処しましょう。

同じ乱数を複数セルで使いたい

RAND関数はセルごとに独立した乱数を返します。同じ値を使いたい場合は、1つのセルにRAND関数を入力します。他のセルからは絶対参照(=$A$1)で参照してください。

RAND関数が大量にあると動作が重い

揮発性関数を大量に使うと再計算の負荷が増えます。結果が確定したら値貼り付けで数式を消すか、RAND関数の数を最小限にしましょう。

まとめ

RAND関数は、0以上1未満の乱数を返すシンプルな関数です。

この記事で紹介した活用パターンをおさらいします。

  • 基本: =RAND() で0〜1未満の乱数を生成
  • 整数に変換: =INT(RAND()*6)+1 でサイコロを再現
  • 任意範囲: =INT(RAND()*(上限-下限+1))+下限 の公式
  • シャッフル: =SORT(A1:A10, ARRAYFORMULA(RAND()), TRUE)
  • 固定方法: Ctrl + Shift + V で値のみ貼り付け

揮発性関数なので、結果が出たらすぐに値貼り付けで固定するのがポイントです。

まずは =RAND() をセルに入力して、乱数が生成される様子を確認してみてください。

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