Розподілити випадково: випадковий відбір і список розподілу
Коротко
Плитка бере просту випадкову вибірку зі списку (числа від 1 до N або вставлений список з одним ідентифікатором у рядку) або розподіляє осіб на групи: за допомогою блочної рандомізації (співвідношення груп, кілька розмірів блоків, за бажанням окремо за стратами) або з фіксованими розмірами груп. Кожен список можна зберегти як CSV або скопіювати.
Навчальний інструмент, а не справжня рандомізація дослідження
Початкове значення видиме. Той, хто знає його та метод, може наперед обчислити весь список; приховування розподілу й протоколу немає. Справжнє дослідження потребує затвердженої системи, незалежної особи та протоколу установи. Тому кожен експортований файл починається рядком «Навчальний інструмент - не для справжніх досліджень (без приховування розподілу)», початковим значенням і методом.
Початкове значення
Типово - 20261008. Те саме початкове значення й ті самі введені дані дають той самий список; інше початкове значення дає інший. Початкове значення ніколи не береться з годинника. Зі стратами кожна страта має власний потік (номер страти від 1): список однієї страти не змінюється, коли інша страта стає більшою.
Блоки
- Блок містить кожну групу стільки разів, скільки вимагає співвідношення (за 1:1 і розміру блоку 4 - по двічі), у випадковому порядку. Після кожного повного блоку групи точно збалансовані; між ними вони відрізняються щонайбільше на половину розміру блоку.
- Той, хто знає розмір блоку, може вгадати останнє спостереження кожного блоку. Тому змішують кілька розмірів блоків; номери блоків у таблиці показують, де блок закінчується.
- Останній блок може лишитися неповним; тоді наприкінці групи не зовсім однакові. З варіантом «Залишити останній блок повним» список стає довшим за кількість місць.
- Багато малих страт мають багато неповних блоків.
Прихований режим: особа за особою
- Весь список створюється на старті з випадковості браузера (не зі стартового значення) і не показується. Кожна особа отримує свою групу лише тоді, коли введено її ідентифікатор; це не можна скасувати, а кожен ідентифікатор враховується лише раз.
- Відбиток (SHA-256 із солі та списку) фіксує список. Його місце в протоколі дослідження перед першим набором. Наприкінці список розкривається разом із сіллю; хто перерахує відбиток, побачить, що згодом нічого не змінено.
- Межа: список прихований лише від погляду на екран. Хто відкриє засоби розробника браузера, може його прочитати, а хто очистить пам'ять браузера, втратить прогін. Тому протокол слід зберігати під час набору. Справжнє дослідження потребує схваленої системи, в якій особа, що проводить набір, ніколи не бачить списку.
Відбір зі списку
Ідентифікатори лише відображаються й ніколи не вставляються в команду; список лишається в браузері. Дубльовані ідентифікатори не видаляються (інакше особа мала б подвійний шанс), а лише повідомляються; порожні рядки пропускаються. Обмеження: щонайбільше мільйон рядків по щонайбільше 200 символів. Відбір вибирає осіб, розподіл поділяє їх на групи; це два різні кроки.
Для фахівців
Генератор mulberry32 (32 біти) зі змішаними підпотоками з (початкове значення, номер). Перемішування за Фішером-Йейтсом; відбір змінює місцями лише k позицій, тож мільйон рядків коштує майже нічого. Методи визначені, а не «правильні» порівняно зі стандартом: інший генератор дав би інші списки. Властивості перевірено (кожен повний блок збалансований, різниця щонайбільше половина розміру блоку, однакова частота включення, однакова частота шести розташувань блоку 1:1 розміру 4 для фіксованих початкових значень), а також списки, створені в скрипті з відтворенням генератора в R.