ランダマイズ(randomize)は英語で「無作為化する」という意味です。アンケートでは選択肢や設問の表示順を回答者ごとに入れ替えて、並び順による回答の偏りを均す手法を指します。実験や臨床試験では、参加者をどの群に入れるかを無作為に決める手順(ランダム化・無作為割付)のことです。この記事では、アンケートでの使い方を中心に、ランダマイズの種類と使い分け、ツールごとの設定、ランダマイズしてはいけない選択肢、自作フォームで偏らせない実装までを扱います。
まとめ:ランダマイズの意味と使いどころ
- ランダマイズは「無作為化」です。何を無作為にするかは分野で違い、アンケートでは表示順、実験では群への割付が対象になります。
- Webアンケートのように選択肢を目で見て選ぶ形式では、上にある選択肢が選ばれやすい初頭効果が出ます。ランダマイズしても個々の回答の偏りは消えず、選択肢の間に無作為に散らばります。回答者が少ないうちは、各位置への提示回数が均等になるとは限りません。
- 5段階評価のような順序のある尺度、年齢区分、「その他」「あてはまるものはない」はシャッフルせず、固定します。
- 種類は全選択肢・グループ単位・逆順・ローテーションなどから選びます。5択を100人に完全ランダムで出すと、先頭に来た回数は選択肢によって平均1.7倍ずれました。数百人に届かない調査で表示位置をそろえたいなら、ローテーションが向きます。
- Googleフォーム、Microsoft Forms、SurveyMonkey、Qualtricsには標準の設定がありますが、分岐やセクションと併用すると動かない、または想定外の動作になる組み合わせがあります。
- フォームを自作するなら Fisher-Yates 法で並べ替えます。
sort(() => Math.random() - 0.5)で並べ替えると、10選択肢では元の先頭が先頭に残る確率が約2倍になりました(Node.js v26.5.0・100万回の実測)。
ランダマイズの意味:分野で変わる「無作為にする対象」
ランダマイズという言葉は、どの分野で使うかによって、無作為にする対象が変わります。検索で出てくる解説が噛み合わないときは、まずどの分野の話かを確かめてください。
| 分野 | 無作為にする対象 | 目的 |
|---|---|---|
| アンケート・市場調査 | 選択肢・設問の表示順 | 順序効果を均す |
| 実験・臨床試験・A/Bテスト | 参加者の群への割付 | 群の条件をそろえ因果を見る |
| 標本調査(無作為抽出) | 調査対象の選び方 | 母集団を代表させる |
| プログラミング | 乱数の種(シード)・配列の並び | 乱数列や並びを変える |
| 匿名加工・機械学習 | データの値・行の並び | 識別を難しくする・学習の偏りを防ぐ |
| DTM(音楽制作) | 音符のタイミング・強さ | 機械的な揃い方を崩す |
ランダマイズと無作為抽出の違い
無作為抽出は「誰を調べるか」を無作為に決める手順で、調査結果を母集団に当てはめてよいか(代表性)を支えます。ランダマイズは「選んだ人に何をどの順で見せるか」「どの群に入れるか」を無作為に決める手順で、比較が公平かどうかを支えます。
2つは別々の工程なので、片方だけ行うこともできます。登録モニターに配信するネット調査は無作為抽出ではありませんが、選択肢のランダマイズは効きます。逆に、住民基本台帳から無作為抽出した調査でも、選択肢の並びを全員同じにすれば順序効果はそのまま集計値に乗ります。
アンケートのランダマイズが防ぐ順序効果
選択肢の並び位置によって選ばれやすさが変わる現象を、調査法では回答順序効果(response order effect)と呼びます。Krosnick と Alwin(1987年、Public Opinion Quarterly 51巻2号)は回答順序効果の認知理論を示し、選択肢を目で見て選ぶ場合は前の方が選ばれやすい初頭効果が出ることを分割投票実験で確かめました。同じ理論は、面接や電話で読み上げを聞いて選ぶ場合には後の方が選ばれやすい新近効果(親近効果)が出ると予測しています。画面上で選択肢を読むWebアンケートは前者の条件にあたります。
ランダマイズは、この偏りを個々の回答から取り除くわけではありません。米国の世論調査機関 Pew Research Center は質問文の設計方針で、多くの選択肢を回答者ごとに無作為の順で出していると説明したうえで、無作為化は順序効果をなくすものではなく、偏りを無作為に散らすものだと書いています。どの選択肢も先頭に来る回数がほぼ同じになるので、偏りが特定の選択肢に集中しません。回答者1人が「上から見て最初に目についたもの」を選ぶ行動自体は残る点を押さえておくと、結果の読み方を誤りません。
選択肢のランダマイズと設問のランダマイズ
選択肢の並べ替えは、上で述べた初頭効果・新近効果への対策です。設問の並べ替えは別の問題を扱います。前の設問で考えたことが後の設問の答えに影響するキャリーオーバー効果への対策です。
設問を入れ替えると質問の流れが崩れるため、並べ替える対象は、質問の依存関係や分岐を壊さない設問群から選びます。同じ尺度で評価する複数ブランドの好意度などは、その一例です。複数の試作品を1人に順番に評価してもらうシークエンシャル・モナディックテストでは、提示順を回答者ごとに変えることが設計の前提です。
アンケートのランダマイズの種類と使い分け
並び順の総数は、選択肢の数の階乗で増えます。3択なら6通り、5択なら120通り、10択なら362万8,800通りです。10択の全通りを均等に見せることは現実にはできないので、実務では「何を単位に、どこまで崩すか」を次の種類から選びます。
| 種類 | 並べ替える単位 | 向く設問 |
|---|---|---|
| 全選択肢のランダム | 選択肢1つずつ | 名義の選択肢から選ぶ設問 |
| 一部を固定してランダム | 「その他」等を除いた残り | 末尾に除外選択肢がある設問 |
| グループ単位 | グループの順→グループ内の順 | 分類のある選択肢 |
| 一部だけ表示 | 全体から指定数を抽出 | 選択肢が多すぎる評価 |
| 逆順(Flip) | 正順と逆順の2通り | 尺度・順序効果の測定 |
| ローテーション | 先頭を1つずつずらす | 少人数で位置をそろえたい設問 |
| マトリクスの項目 | 評価する行 | 同じ尺度で複数項目を評価 |
| 設問・ブロック | 設問のまとまり | 独立した評価設問の群 |
グループ単位は、動画配信サービスを有料と無料に分ける、ブランドとそのサブブランドを隣に置く、といった「隣り合っていないと意味が通じない」選択肢に使います。グループの並びとグループ内の並びを別々に無作為にするので、まとまりを保ったまま位置の偏りを散らせます。ツールにこの設定が無ければ、その設問はランダマイズしない方が安全です。
マトリクス設問では、評価する行(項目)の順番を並べ替えます。尺度の列は動かしません。逆順(Flip)は、半数の回答者にだけ並びを逆にして見せる方法です。SurveyMonkey のヘルプはこれを Flip と呼び、平均して回答者の半数が逆順を見ると説明しています。順序の効果を「正順の群」と「逆順の群」の差として測れるので、後から影響の大きさを確かめたい場合に向きます。
完全ランダムとローテーションの使い分け
ローテーションは、先頭の選択肢を回答者ごとに1つずつずらす方法です。4択なら「ABCD」「BCDA」「CDAB」「DABC」の4通りを順番に割り当て、4人ごとにどの選択肢も各位置に1回ずつ来ます。心理学の実験で同じ参加者に複数の条件を順に試すときに、提示順を参加者の間で組織的に入れ替えて順序の影響を相殺する手続き(カウンターバランス)と同じ考え方です。
完全ランダムは回答者が多ければ位置がそろいますが、少ないうちはそろいません。5択の設問を完全ランダムで出した場合に、各選択肢が先頭に来た回数がどれだけばらつくかを、Node.js v26.5.0 で各10万回シミュレーションしました(2026年10月25日実行)。
| 回答者数 | 均等なら | 最も多い選択肢 | 最も少ない選択肢 |
|---|---|---|---|
| 50人 | 10回 | 平均13.8回 | 平均6.5回 |
| 100人 | 20回 | 平均25.3回 | 平均14.9回 |
| 300人 | 60回 | 平均69.1回 | 平均51.1回 |
| 1,000人 | 200回 | 平均216.6回 | 平均183.7回 |
100人の調査では、先頭に来た回数が最も多い選択肢と最も少ない選択肢で平均1.7倍の差がつきました。差が「均等なら」の回数の半分以上に開いた試行は、100人で56.1%、300人で5.5%です。回答者が数百人に届かない調査で各選択肢の表示位置をそろえたいなら、ローテーションで位置ごとの提示回数を管理します。ツールの「均等提示」の設定は、多くが表示する回数をそろえる機能で、表示する位置までそろえるとは限らないため、ヘルプで対象を確かめてから使います。
ローテーションにも弱点があります。並びの順番そのものは変わらないので、「B の直前はいつも A」という隣り合わせの関係が残ります。直前に見た選択肢との比較が答えに影響しそうな設問(価格や品質を相対的に評価させる設問など)では、完全ランダムの方が向きます。
後続設問への表示順の引き継ぎと位置の偏り
「知っているブランドをすべて選んでください」の次に「その中で最も好きなものを1つ選んでください」と聞くように、前の設問の選択肢を後続の設問で使う場合は、並び順をどうするかを先に決めます。同じ回答者には前の設問と同じ並びで見せると、探し直す手間が無く回答しやすくなります。その代わり、前の設問で上にあった選択肢は後続でも上に来るので、位置の影響が2問に続けて乗ります。
Qualtrics は、前の設問の無作為順を Carry Forward で次の設問へ引き継げるとヘルプに明記しています。ほかのツールでは引き継ぎの有無がヘルプからは読み取りにくいので、どちらの方針でもプレビューで数回開いて並びを確かめます。後から影響を測れるよう、各設問の表示順を回答データと一緒に保存しておきます(保存の方法は後述の自作フォームの章で扱います)。
紙の調査票でランダマイズする方法
同じ版を印刷して配る紙の調査票では、配布時に並びを変えられないため、並び順だけが違う版(A票・B票など)を作り、同じ枚数ずつ配ります。全通りは作れないので、正順と逆順の2版にするか、ローテーションの考え方で選択肢の数だけ版を作ります。
- 版番号を調査票の隅に印字し、データ入力時に版の列を作る(集計で版ごとの差を確認できる)
- 配布用の束は A・B・A・B と交互に重ねる(版ごとに束ねると、配布した場所や時間帯で版が偏る)
- 回収数が版ごとに大きくずれたら、版で重み付けするか、版ごとの結果を並べて報告する
ランダマイズしてはいけない選択肢と設問
判断の基準は1つです。並び順そのものが意味を持っている選択肢は動かしません。次のものはシャッフルの対象から外します。
- 順序のある尺度:「とても満足」から「まったく満足していない」までの5段階評価をシャッフルすると、程度の順に並んでいることを前提にした尺度が崩れ、読み違いを招きます。リッカート尺度の向きによる偏りを抑えたいなら、尺度全体を逆順にした版を半数に見せる方法にとどめます。
- 探して選ぶ長い一覧:都道府県や業種の一覧は、決まった順に並んでいるから目的の項目を探せます。シャッフルすると探す手間が増えるだけなので固定します。
- 数値や頻度の区分:「20代・30代・40代」「週1回未満・週1〜2回・ほぼ毎日」は昇順で固定します。
- 「その他」「あてはまるものはない」「わからない」:末尾に固定します。SurveyMonkey には、最後の選択肢だけをランダマイズから外す Do Not Randomize the Last Choice という設定があります。
- 分岐の起点になる設問と、一般から具体へ並べた設問群:スクリーニング設問や、全体の満足度を聞いてから個別の不満点を聞く並びは固定します。SurveyMonkey のヘルプは、スキップロジックや回答の引用(パイピング)と設問ランダマイズを併用すると想定外の動作になる場合があると注意しています。
- 定点調査で過去回と比べる設問:過去回が固定順だった設問を今回だけランダマイズすると、順序効果の分だけ数値が動き、時系列の変化と区別できなくなります。切り替える回は、変化の一部が並び順によるものだと報告書に書き添えます。
固定する選択肢の並べ方にも決まりがあります。数値・頻度・時期は小さい順か古い順、評価の尺度は肯定から否定(または逆)へ一方向に並べ、途中で向きを変えません。都道府県は全国地方公共団体コードの順、業種は日本標準産業分類の順のように、回答者が見慣れた公的な並びがあればそれに合わせると、探す時間が短くなります。
ツール別のランダマイズ設定
主要なアンケートツールの設定場所と制約を、公式ヘルプで確かめて整理しました(2026年10月時点)。
| ツール | 選択肢の並べ替え | 設問の並べ替え | 主な制約 |
|---|---|---|---|
| Googleフォーム | 設問右下のその他メニュー | 設定の[プレゼンテーション] | メール送信はアドレスを個別に |
| Microsoft Forms | 設問ごとのShuffle options | 設定のShuffle questions | 設問の並べ替えはセクションありで不可 |
| SurveyMonkey | 設問の[Options]タブ | [Logic]のQuestion Randomization | 設問・ページの並べ替えは有料機能 |
| Qualtrics | 設問のChoice Randomization | Survey FlowのRandomizer | 提示回数の均等化は任意設定 |
Googleフォームは、[設定]の[プレゼンテーション]を開き、[フォームの表示]で[質問の順序をシャッフルする]をオンにします。選択肢は、ラジオボタン式・チェックボックス式・プルダウン式の設問で、右下のその他メニューから[選択肢の順序をシャッフルする]を選びます。Googleフォームのヘルプには「1 件のメールアドレスにつき 1 回だけシャッフルされます」とあり、フォームをメールで送るときは送信先アドレスを個別に入力し、Google グループ宛てに送らないよう注意書きがあります。
Microsoft Formsは、設定の Shuffle questions で、すべての設問を並べ替えるか(All questions)、指定した設問だけ固定して残りを並べ替えるか(Lock questions)を選べます。選択肢は、設問ごとの Shuffle options で並べ替えます。Microsoft Forms の設定のヘルプには、フォームに複数のセクションやページがあると設問はシャッフルできないと書かれています。
SurveyMonkeyは、設問の[Options]タブにある Sort, Randomize, or Flip Choices で選択肢を並べ替えます。選択肢の並べ替えのヘルプによると、最後の選択肢だけを並べ替えから外す Do Not Randomize the Last Choice があり、「その他」「あてはまるものはない」を末尾に残せます。マトリクス設問でも行を並べ替え・逆順にできます。設問とページの並べ替えはQuestion and Page Randomizationで、有料機能(Paid feature)として表示されています。ページには、前の回答者が最初に見たページを次の回答者の最後に回す Rotate pages もあります。同じヘルプは、スキップロジックや回答の引用(パイピング)と設問の並べ替えを併用すると想定外の動作になる場合があると注意しています。
Qualtricsは、選択肢を設問ごとのChoice Randomizationで並べ替えます。全選択肢を無作為に並べる設定、指定した数だけを無作為に選んで見せる設定、並びを無作為に逆転させる設定があり、Advanced Randomization では特定の選択肢の位置を固定できます。前の設問の無作為順は Carry Forward で次の設問へ引き継げると、同じヘルプに書かれています。設問やブロックの並べ替えは、Survey Flow にRandomizer 要素を置き、その下のブロックを無作為に提示します。Evenly Present Elements を有効にすると、各要素が回答者全体でほぼ同じ回数ずつ提示されるよう回数を管理します。条件ごとに回答者を振り分ける実験では、この設定を入れないと、各群の人数は偶然に任されます。
自社のアンケート基盤を選び直す場合は、アンケートシステムの機能と選び方で、ランダマイズや分岐を含む必須機能を整理しています。前の設問からの並び順の引き継ぎや表示順の保存が既製ツールで足りないなら、アンケート管理システム開発のように要件に合わせて作る方法もあります。
自作フォームのランダマイズ:sort乱数の偏りとFisher-Yates法
フォームを自作するとき、JavaScript で options.sort(() => Math.random() - 0.5) と書いて選択肢を混ぜる例をよく見かけます。この書き方は偏ります。比較関数が同じ2要素に毎回違う結果を返すため、MDN の Array.prototype.sort() の解説(英語版)は、比較関数がこうした規則を満たさない場合、プログラムの動作は定義されない(not well-defined)と説明し、結果の配列が JavaScript エンジンごとに異なる例を挙げています。
Node.js v26.5.0 で、元の並びで先頭にある選択肢が並べ替え後に何番目へ行くかを100万回ずつ数えました。偏り方はエンジンの並べ替え実装によって変わるため、ブラウザではこの表と違う分布になりえます。
| 方法 | 4択:1番目 | 4択:4番目 | 10択:1番目 | 10択:5番目 |
|---|---|---|---|---|
| sort乱数 | 28.1% | 18.7% | 19.5% | 6.8% |
| Fisher-Yates | 25.0% | 25.0% | 10.0% | 10.0% |
| 理論値 | 25.0% | 25.0% | 10.0% | 10.0% |
sort乱数では、元の先頭の選択肢が10択で先頭に残る確率が19.5%と、均等な場合の約2倍で、提示位置の偏りが残ります。この確率から、回答の選ばれやすさへの影響までは算定できません。後ろから順に、まだ確定していない範囲から1つ選んで入れ替える Fisher-Yates 法を使ってください。
// 選択肢を偏りなく並べ替える(Fisher-Yates)
function shuffle(items) {
const a = [...items];
for (let i = a.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
return a;
}
// 「その他」は末尾に固定し、表示した順番を回答と一緒に保存する
const options = ['価格', '品質', 'デザイン', 'サポート'];
const shown = [...shuffle(options), 'その他'];
const answer = { choice: 'デザイン', optionOrder: shown.join('|') };
console.log(answer);
この例は回答を「デザイン」に固定したデータ構造の例で、サーバーへの保存処理は含みません。実行すると { choice: 'デザイン', optionOrder: 'サポート|品質|デザイン|価格|その他' } のように、回答と表示順が1つのデータにまとまります。表示順を保存しておけば、集計時に「1番目に表示されたときの選択率」と「それ以外の位置での選択率」を比べて、順序効果がどれだけあったかを後から測れます。ツールの標準機能でも表示順を残せるものがあり、Qualtrics はデータのエクスポート時に Export viewing order data for randomized surveys を選ぶと、表示順が「|」区切りの列で出力されます。
実験・臨床試験のランダム化(無作為割付)
ランダム化比較試験(RCT)では、参加者を治療群と対照群に無作為に割り付けます。年齢や重症度のように測った要因だけでなく、測っていない要因も群の間でそろう見込みが立つので、結果の差を介入の効果として扱えます。Webサイトの A/B テストで訪問者をパターンAとBに振り分けるのも同じ考え方です。
割付方法:単純・ブロック・層別
単純ランダム化は1人ずつ硬貨を投げるのと同じで、参加者が少ないと群の人数がずれます。置換ブロック法は、4人や6人のブロックの中で各群を同数にしてから順番を混ぜ、人数を一定間隔でそろえます。層別ランダム化は、施設や性別などの層ごとに別々のブロックを回します。CONSORT 2025(ランダム化試験の報告ガイドライン)は項目17bで、ランダム化の種類と、層別やブロック化・ブロックサイズといった制約の詳細を報告するよう求めています。
import random
def block_randomize(n, arms=("A", "B"), block_size=4, seed=42):
"""置換ブロック法:ブロック内で各群を同数にしてからシャッフルする"""
if not isinstance(n, int) or n < 0:
raise ValueError("n は0以上の整数にしてください")
if not arms or len(set(arms)) != len(arms):
raise ValueError("arms は重複のない群名を1つ以上指定してください")
if not isinstance(block_size, int) or block_size <= 0:
raise ValueError("block_size は正の整数にしてください")
if block_size % len(arms):
raise ValueError("block_size は群の数で割り切れる必要があります")
rng = random.Random(seed) # シードを記録すれば割付表を再現できる
seq = []
while len(seq) < n:
block = list(arms) * (block_size // len(arms))
rng.shuffle(block) # random.shuffle は Fisher-Yates で実装されている
seq.extend(block)
return seq[:n]
seq = block_randomize(10)
print(seq)
print({arm: seq.count(arm) for arm in ("A", "B")})
説明のためブロックサイズを4に固定しています。Python 3.9.6 で実行すると ['A', 'B', 'B', 'A', 'B', 'A', 'A', 'B', 'B', 'B'] と {'A': 4, 'B': 6} が出ます。10人目で3つ目のブロックが途中で切れたため、4対6になりました。ブロック法でそろうのはブロックが完了した時点だけで、2群を1対1で割り付ける場合、途中で打ち切ると最大でブロックサイズの半分だけ差が出ます。
ブロックサイズを固定して関係者に知られると、ブロックの最後の割付が予測できてしまいます。ICH E9(臨床試験の統計的原則)は、治験担当者にブロック長を伏せること、または2種類以上のブロック長をブロックごとに無作為に選ぶことを推奨しています。
割付の隠蔵:乱数を作るだけでは足りない理由
割付表を正しく作っても、登録担当者が次の割付を事前に知れば、「この患者は次が治療群だから登録を待とう」といった操作が入り込みます。そこで、中央のコンピュータや電話による割付、通し番号付きの不透明で封をした封筒などで、割り付ける瞬間まで順番を隠します。これを割付の隠蔵(allocation concealment)と呼び、CONSORT 2025 は項目18で、その仕組みを報告するよう求めています。
ランダマイザー・データランダマイズ・VBA・DTMでの意味
ランダマイザー(randomizer)は、無作為化を実行する仕組みを指します。臨床試験では、Webや電話で割付を返す中央割付システム(IWRS/IVRS)がこの役割を担います。Qualtrics では、Survey Flow で要素を無作為に提示する部品の名前が Randomizer です。
データランダマイズには主に2つの用法があります。1つは行の並びを混ぜる処理で、機械学習の scikit-learn の train_test_split は既定で shuffle=True になっており、分割の前にデータを並べ替えます。もう1つは個人情報の匿名加工で、個人情報保護委員会のガイドライン(仮名加工情報・匿名加工情報編)は加工手法の例に、記述を確率的に入れ替える「データ交換(スワップ)」と、乱数的な数値を加える「ノイズ(誤差)付加」を挙げています。
VBA の Randomize ステートメントは、Rnd 関数の乱数ジェネレーターに新しいシード(乱数の種)を与える命令です。Microsoft のリファレンスによると、引数を省略するとシステムタイマーの値がシードになります。Randomize を使わない場合、Rnd は初回の呼び出しで毎回同じ数をシードに使うため、実行のたびに同じ乱数列になります。
DTM(音楽制作)では、打ち込んだMIDIノートのタイミングや強さ(ベロシティ)をわずかに無作為にずらし、機械的に揃いすぎた演奏を人間らしくする操作をランダマイズと呼びます。
よくある質問
ランダマイズとはどういう意味ですか?
英語の randomize で「無作為化する」という意味です。アンケートでは選択肢や設問の表示順を回答者ごとに入れ替えること、実験では参加者を群へ無作為に割り付けることを指します。
ランダマイズと無作為抽出の違いは何ですか?
無作為抽出は調査対象を選ぶ段階の手順で、ランダマイズは選んだ人への見せ方や群分けを決める段階の手順です。前者は結果を母集団に当てはめてよいかを、後者は比較が公平かを支えます。
アンケートの選択肢はどんな順番で並べればよいですか?
ブランド名や理由のように順序の意味がない選択肢は、回答者ごとにランダマイズします。5段階評価などの尺度、年齢や頻度の区分は小さい順・一方向で固定し、「その他」「あてはまるものはない」は末尾に置きます。過去回と比べる定点調査の設問は、前回と同じ並びを保ちます。
Googleフォームでランダマイズするにはどうすればよいですか?
設問の並べ替えは[設定]の[プレゼンテーション]で[質問の順序をシャッフルする]をオンにします。選択肢は、設問右下のその他メニューから[選択肢の順序をシャッフルする]を選びます。
ランダマイザーとは何ですか?
無作為化を実行する仕組みの総称です。臨床試験で割付を返す中央割付システムや、Qualtrics の Survey Flow にある Randomizer 要素がこれにあたります。