Kalkulatory · Randomizacja

Generator listy randomizacji – prosta, blokowa i warstwowa

Ustaw ramiona, proporcje przydziału, długości bloków i czynniki warstwujące, a generator przygotuje powtarzalną listę przydziału z ziarnem, podsumowaniem liczebności, plikiem CSV i raportem ustawień do dokumentacji badania. Wszystko liczy się w przeglądarce.

Strona główna / Blog / Generator listy randomizacji
W skrócie: Lista randomizacji to przygotowana przed rekrutacją sekwencja przydziałów do ramion badania. W randomizacji blokowej składa się z bloków, w których każde ramię występuje tyle razy, ile wynika z proporcji, a długość bloku najlepiej losować (Efird, 2011). Generator na tej stronie tworzy listę prostą, blokową albo warstwową dla 2–4 ramion z ziarnem, które pozwala ją odtworzyć. Listę przygotowuje i przechowuje osoba niezależna od rekrutacji, a przydział pozostaje ukryty do chwili włączenia uczestnika.

Generator listy randomizacji

Lista przydziału z ziarnem, podsumowaniem i plikiem CSV

Ustaw tryb, ramiona, proporcje i ziarno, a generator przygotuje listę przydziału z identyfikatorami miejsc. Domyślne ustawienia to przykład omówiony niżej. Lista powstaje w Twojej przeglądarce: nic nie jest wysyłane ani zapisywane, a ten sam zestaw ustawień i to samo ziarno dają zawsze tę samą listę.

Generator wymaga włączonej obsługi JavaScriptu. Wynik dla ustawień domyślnych opisujemy w przykładzie poniżej.

Tu pojawi się lista przydziału.

Raport ustawień do dokumentacji badania

Raport pojawi się tutaj po wygenerowaniu listy.
Ta strona nie zastępuje centralnej randomizacji. W badaniu klinicznym albo innym badaniu z ukryciem przydziału listę generuje i przechowuje osoba niezależna, która nie kwalifikuje ani nie włącza uczestników. Lista, ziarno i raport ustawień nie mogą trafić do osób rekrutujących. Kto zna ziarno, odtworzy całą listę. Gdy badanie ma system randomizacji internetowej albo telefonicznej, lista z tej strony może co najwyżej posłużyć do pilotażu, szkolenia zespołu albo sprawdzenia ustawień.

Jak używać generatora

Generator przyda się, gdy planujesz badanie z randomizacją i potrzebujesz gotowej listy: do zestawu kopert, do numerowanych opakowań przygotowanych przez aptekę albo do wgrania do systemu, który wydaje przydziały po kolei. Wybór metody i jej uzasadnienie omawiamy we wpisie o randomizacji w praktyce. Tu skupiamy się na samej liście: jak ją ustawić, sprawdzić i udokumentować.

  1. Tryb. Randomizacja prosta przydziela każde miejsce niezależnie, jak rzut monetą, tyle że liczbami losowymi z komputera (Altman i Bland, 1999). Randomizacja blokowa składa listę z bloków, w których każde ramię występuje dokładnie tyle razy, ile wynika z proporcji. Randomizacja warstwowa tworzy osobną listę bloków dla każdej warstwy, czyli kombinacji poziomów czynników.
  2. Ramiona i proporcje. Wpisz od 2 do 4 nazw ramion, oddzielonych średnikiem, i proporcje w liczbach całkowitych, np. 1:1, 2:1 albo 1:1:1. Proporcje podawaj w postaci skróconej: zamiast 2:2 wpisz 1:1, a dłuższy blok ustaw w polu długości bloków.
  3. Długości bloków. Każda długość musi być wielokrotnością sumy proporcji. Przy 2:1 suma wynosi 3, więc możliwe są bloki 3, 6, 9, 12. Przy 1:1:1 też 3, 6, 9, a przy 1:1:1:1 – 4, 8, 12. Gdy podasz kilka długości, generator losuje długość każdego bloku, każdą z tym samym prawdopodobieństwem. Taki schemat opisuje Efird (2011).
  4. Czynniki warstwujące. Każdy czynnik wpisz w osobnym wierszu: nazwa, dwukropek, poziomy po przecinku, np. „Ból: umiarkowany, silny”. Warstwy powstają ze wszystkich kombinacji poziomów, więc dwa czynniki po 3 i 2 poziomy dają 6 warstw. Generator przyjmuje do 3 czynników i 48 warstw.
  5. Liczba miejsc. W trybie warstwowym to liczba miejsc w każdej warstwie. Ponieważ nie wiesz z góry, ile osób trafi do której warstwy, ustaw ją z zapasem. Przy opcji „Dokończ blok” lista kończy się zawsze pełnym blokiem, więc bywa nieco dłuższa niż podana liczba.
  6. Ziarno. Ziarno to punkt startowy generatora. Może być liczbą albo dowolnym tekstem, np. kodem badania. Do prawdziwego badania wybierz ziarno, którego nikt nie odgadnie. Przycisk „Losowe ziarno” pobiera je z generatora kryptograficznego przeglądarki.

Po kliknięciu „Generuj listę” zobaczysz liczebności ramion w każdej warstwie, wynik kontroli bloków, listę i raport ustawień. Pliki CSV i TXT zapiszesz przyciskami pod listą. CSV ma kolumny: numer, identyfikator miejsca, warstwa z poziomami czynników, numer i długość bloku oraz ramię. Kodowanie to UTF-8, więc Excel poprawnie pokaże polskie znaki.

Jak działa generator

Każdy krok jest deterministyczny: te same ustawienia i to samo ziarno dają tę samą listę w każdej przeglądarce. Algorytm wygląda tak:

  1. Ziarno. Liczba całkowita od 0 do 4 294 967 295 przechodzi bez zmian. Każdy inny tekst zamieniany jest na liczbę 32-bitową funkcją skrótu FNV-1a, liczoną na bajtach UTF-8. Spacje na początku i końcu są pomijane, a wielkość liter ma znaczenie.
  2. Osobny strumień dla każdej warstwy. Warstwa k dostaje własne ziarno, wyliczone z ziarna głównego i numeru warstwy. Dzięki temu zmiana liczby miejsc w jednej warstwie nie zmienia list w pozostałych. Dłuższa lista z tym samym ziarnem zaczyna się tak samo jak krótsza.
  3. Liczby losowe. Generator Mulberry32 daje ciąg liczb 32-bitowych. To ten sam generator, którego używa nasz kalkulator efektu pośredniego Monte Carlo. Liczbę całkowitą z zakresu od 0 do m − 1 losujemy z odrzucaniem: wartości z niepełnego końca zakresu są pomijane, więc żadna liczba nie jest uprzywilejowana.
  4. Randomizacja prosta. Dla każdego miejsca losujemy liczbę od 0 do S − 1, gdzie S to suma proporcji. Przy 2:1 wartości 0 i 1 oznaczają pierwsze ramię, a 2 – drugie.
  5. Blok. Najpierw losujemy długość bloku (gdy podano kilka), potem wypełniamy blok ramionami według proporcji i tasujemy go algorytmem Fishera–Yatesa. Każdy układ bloku jest wtedy równie prawdopodobny.
liczba wystąpień ramienia j w bloku = pj × L / S     S = p1 + … + pK,   L = długość bloku

Na przykład blok 9 przy proporcji 2:1 zawiera 6 przydziałów do pierwszego ramienia i 3 do drugiego. Liczba możliwych układów takiego bloku to 9! / (6! × 3!) = 84.

Generator nie odtwarza set.seed() z R. R domyślnie używa generatora Mersenne Twister (Matsumoto i Nishimura, 1998), a funkcja sample() ma własny sposób zamiany liczb losowych na wybór elementów. Lista z tej strony i lista z R przy tym samym ziarnie będą więc inne. Obie są równie poprawne, ale listę odtworzysz tylko tym narzędziem, w tej samej wersji. Dlatego raport ustawień podaje wersję generatora, a plik CSV warto zachować razem z raportem.

Suma kontrolna to 8-znakowy skrót FNV-1a z identyfikatorów i ramion całej listy. Gdy ktoś zmieni choć jeden przydział, suma się zmieni. Nie jest to zabezpieczenie kryptograficzne, tylko szybki sposób, żeby sprawdzić, czy plik w rękach osoby prowadzącej przydział jest tym samym plikiem, który opisano w dokumentacji.

Przykład: badanie 2:1 w trzech ośrodkach

Zespół planuje badanie programu rehabilitacji w trzech ośrodkach: w Krakowie, Lublinie i Gdańsku. Na każdą osobę w grupie kontrolnej przypadają dwie osoby w grupie interwencji, bo zespół chce zebrać więcej danych o bezpieczeństwie programu. Statystyk spoza zespołu klinicznego generuje listę warstwową według ośrodka z blokami 6 albo 9 i rezerwuje 30 miejsc na ośrodek. Ziarno „PROTOKOL-2026-07” jest wpisane w generator, więc po otwarciu strony zobaczysz właśnie tę listę.

Lista warstwowa dla przykładu: liczba miejsc i bloków w ośrodkach
WarstwaMiejsca na liścieBloki (długość)InterwencjaKontrola
W01: Kraków306, 6, 9, 92010
W02: Lublin309, 9, 6, 62010
W03: Gdańsk339, 9, 9, 62211
Razem9312 bloków6231

Wszystkie 12 bloków ma dokładnie proporcję 2:1. W Gdańsku trzy bloki po 9 dały 27 miejsc, więc generator dołożył czwarty blok i lista ma 33 miejsca zamiast 30. Pierwszy blok w Krakowie ma układ: Interwencja, Interwencja, Kontrola, Interwencja, Interwencja, Kontrola. Identyfikatory mają postać PR-W01-001, czyli prefiks, warstwa i numer miejsca. Suma kontrolna listy to B6A2C7FD. Jeśli po wygenerowaniu widzisz inną sumę, zmieniło się któreś ustawienie.

Kontrola w generatorze pokazuje też największe odchylenie liczebności ramienia od wartości oczekiwanej w trakcie rekrutacji. Przy proporcji 2:1 po 4 przydziałach oczekujemy 2.67 osoby w grupie interwencji. Odchylenie mierzy, o ile rzeczywista liczba odbiega od takiej wartości w najgorszym momencie. W blokach jest ono ograniczone długością bloku. W randomizacji prostej nie ma takiej granicy.

Przykład reprodukowalny

Ta sama procedura w bazowym R

Kod tworzy listę według tego samego schematu (2:1, bloki 6 albo 9, trzy ośrodki, 30 miejsc na ośrodek) funkcjami sample() i rep(). Ponieważ R ma inny generator liczb losowych, lista będzie inna niż na stronie. Zgodne są reguły: skład bloków, dokładanie pełnych bloków i liczebności.

Lista warstwowa z blokami o losowej długości

Dane wejściowe: dwa ramiona w proporcji 2:1, długości bloków 6 i 9, trzy ośrodki, 30 miejsc na ośrodek, set.seed(20261102).

Co odczytać: początek listy, liczebności ramion w ośrodkach, wynik kontroli proporcji w blokach i nazwę generatora R.

R
# Lista randomizacji warstwowej z blokami o losowej długości – ta sama procedura w bazowym R
# Ramiona: Interwencja i Kontrola w proporcji 2:1; bloki 6 albo 9; warstwy: 3 ośrodki; 30 miejsc na warstwę.
# Uwaga: R używa innego generatora liczb losowych niż kalkulator, więc lista będzie inna niż na stronie.
set.seed(20261102)
ramiona    <- c("Interwencja", "Kontrola")
proporcje  <- c(2, 1)
dlugosci   <- c(6, 9)                 # każda długość musi być wielokrotnością sumy proporcji (3)
osrodki    <- c("Kraków", "Lublin", "Gdańsk")
n_warstwa  <- 30

lista_blokowa <- function(n, ramiona, proporcje, dlugosci) {
  stopifnot(all(dlugosci %% sum(proporcje) == 0))
  wynik <- NULL
  blok <- 0
  while (is.null(wynik) || nrow(wynik) < n) {   # dokładamy pełne bloki, aż starczy miejsc
    blok <- blok + 1
    k <- if (length(dlugosci) == 1) dlugosci else sample(dlugosci, 1)
    zawartosc <- rep(ramiona, times = proporcje * k / sum(proporcje))
    wynik <- rbind(wynik, data.frame(blok = blok, dlugosc_bloku = k, ramie = sample(zawartosc)))
  }
  wynik
}

lista <- do.call(rbind, lapply(seq_along(osrodki), function(w) {
  l <- lista_blokowa(n_warstwa, ramiona, proporcje, dlugosci)
  data.frame(id = sprintf("PR-W%02d-%03d", w, seq_len(nrow(l))), warstwa = osrodki[w], l)
}))
head(lista, 9)
table(lista$warstwa, lista$ramie)[osrodki, ]

# Kontrola: każdy pełny blok ma dokładnie proporcje 2:1
sklad <- aggregate(ramie ~ warstwa + blok + dlugosc_bloku, data = lista,
                   FUN = function(r) sum(r == "Interwencja") / length(r))
all(sklad$ramie == 2 / 3)

# Zapis do pliku dla osoby, która prowadzi przydział (średnik jako separator, jak w polskim Excelu)
write.csv2(lista, "lista-randomizacji.csv", row.names = FALSE, fileEncoding = "UTF-8")
RNGkind()                                # generator R: Mersenne Twister, losowanie z odrzucaniem
Wynik w R
          id warstwa blok dlugosc_bloku       ramie
1 PR-W01-001  Kraków    1             6    Kontrola
2 PR-W01-002  Kraków    1             6 Interwencja
3 PR-W01-003  Kraków    1             6 Interwencja
4 PR-W01-004  Kraków    1             6 Interwencja
5 PR-W01-005  Kraków    1             6 Interwencja
6 PR-W01-006  Kraków    1             6    Kontrola
7 PR-W01-007  Kraków    2             6 Interwencja
8 PR-W01-008  Kraków    2             6    Kontrola
9 PR-W01-009  Kraków    2             6 Interwencja

         Interwencja Kontrola
  Kraków          22       11
  Lublin          20       10
  Gdańsk          20       10
[1] TRUE
[1] "Mersenne-Twister" "Inversion"        "Rejection"

Bibliografia oprogramowania

Wynik pochodzi z uruchomienia pokazanego kodu w R 4.5.3 (funkcje sample(), rep(), aggregate() i write.csv2() z pakietów base, stats i utils). Generator na stronie sprawdzono na 59 przypadkach testowych: powtarzalność list i sum kontrolnych (z niezależną implementacją w Pythonie), skład bloków, proporcje i częstości przy 10 000 losowań.

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/

Jak sprawdzić i przechować listę

Listę przed użyciem sprawdza osoba, która ją wygenerowała. Nie robi tego zespół rekrutujący. Pomaga w tym krótka lista kontrolna:

  • Liczebności. Suma wierszy w każdej warstwie powinna pokrywać planowaną rekrutację z zapasem. Zapas dobierz do niepewności co do rozkładu uczestników między ośrodki. Jeśli warstwa się wyczerpie, a nie ma zapasu, zespół zacznie improwizować.
  • Bloki. Generator podaje liczbę pełnych bloków i potwierdza, że każdy ma dokładnie zadane proporcje. Gdy wybierzesz przycinanie ostatniego bloku, grupy na końcu listy nie muszą być w proporcji.
  • Odtworzenie. Wygeneruj listę drugi raz z tymi samymi ustawieniami i porównaj sumę kontrolną. Zapisz ją w raporcie. Po zakończeniu badania pozwala wykazać, że użyto listy przygotowanej przed rekrutacją.
  • Rozdzielenie plików. Osoba niezależna przechowuje raport z ziarnem i długościami bloków oraz pełny plik CSV. Osoby rekrutujące widzą najwyżej numer kolejnego miejsca, a nie ramię. Długości bloków nie umieszczaj w dokumentach dostępnych dla ośrodków.

Sama lista nie wystarczy. Altman i Schulz (2001) podkreślają, że osoba generująca sekwencję nie powinna kwalifikować ani włączać uczestników. Najlepsze są mechanizmy zewnętrzne: centralna randomizacja albo apteka z kolejno numerowanymi, identycznymi opakowaniami. Koperty muszą być nieprzezroczyste, zaklejone i otwierane po kolei, dopiero po wpisaniu danych uczestnika. Ukrycie przydziału to coś innego niż zaślepienie: chroni do chwili przydziału i da się je zapewnić w każdym badaniu.

Ograniczenia

  • Brak minimalizacji. Minimalizacja przydziału nie tworzy listy z góry: przydział zależy od cech osób już włączonych. Wymaga więc systemu działającego w trakcie rekrutacji, a nie pliku.
  • Liczba warstw. Kernan i in. (1999) zalecają ograniczać liczbę warstw i dobierać czynniki, które silnie wpływają na rokowanie. Przy wielu warstwach i małej próbie wiele warstw kończy się niedomkniętym blokiem, a nierówności się sumują. Generator ostrzega przed takim układem.
  • Przewidywalność. Stała długość bloku, szczególnie równa sumie proporcji, pozwala odgadnąć ostatnie przydziały w bloku. Schulz i Grimes (2002) zalecają losowo zmieniać długość bloków i używać dłuższych bloków, zwłaszcza gdy badanie nie jest zaślepione.
  • Randomizacja klastrowa i badania naprzemienne. Gdy losujesz szkoły albo oddziały, lista dotyczy klastrów, a nie osób, i ma swoje zasady opisane we wpisie o randomizacji klastrowej. W schemacie naprzemiennym losujesz kolejność warunków. Jako ramiona wpisz wtedy sekwencje, np. „AB; BA”.
  • Analiza. Lista nie rozwiązuje analizy. Czynniki warstwujące uwzględnij jako kowarianty w analizie głównej. Kahan i Morris (2012) pokazali, że analiza bez nich daje za szerokie przedziały ufności i mniejszą moc. Zapisz to w planie analizy statystycznej, a uczestników analizuj według przydzielonego ramienia (ITT).
  • Proporcje a moc. Przydział 2:1 przy tej samej łącznej liczbie osób daje zwykle mniejszą moc niż 1:1. Liczebność policz przed generowaniem listy, np. w kalkulatorze liczebności próby.

Zapis w protokole i raporcie

CONSORT 2025 wymaga opisu, kto i jak wygenerował sekwencję, jaki był rodzaj randomizacji z jej ograniczeniami (np. długość bloków i czynniki warstwujące), jak ukryto przydział i kto miał dostęp do sekwencji (Hopewell i in., 2025). Wybór listy kontrolnej i jej rozszerzeń omawia wpis o wytycznych raportowania CONSORT, STROBE i TRIPOD. Wzór dla przykładu z tej strony:

Uczestników przydzielano do programu rehabilitacji albo do grupy kontrolnej w stosunku 2:1. Sekwencję przydziałów wygenerował przed rozpoczęciem rekrutacji statystyk niezwiązany z kwalifikacją i oceną uczestników, przy użyciu generatora listy randomizacji metodolog.pl (wersja 1.0, generator Mulberry32 z ziarnem). Zastosowano randomizację blokową warstwowaną według ośrodka (3 ośrodki), z blokami o losowo wybieranej długości 6 albo 9. Długości bloków nie były znane osobom rekrutującym. Przydział przekazywano centralnie po potwierdzeniu kwalifikacji i uzyskaniu zgody uczestnika. Ziarno, raport ustawień i sumę kontrolną listy przechowuje statystyk. Ośrodek uwzględniono jako kowariant w analizie głównej.

W protokole możesz dodać raport ustawień z generatora jako załącznik zamknięty, dostępny dopiero po zakończeniu rekrutacji. Ocena procesu randomizacji jest osobną domeną narzędzia RoB 2, więc staranny opis ułatwi też przyszłe przeglądy systematyczne. Cały proces badania od planu do raportu porządkuje przewodnik po badaniach klinicznych. Jeśli przygotowujesz protokół z randomizacją warstwową albo nierównym przydziałem i chcesz sprawdzić schemat przydziału oraz plan analizy, zajrzyj do oferty analiz dla badaczy.

Najczęstsze pytania

Jak wygenerować listę randomizacji z przydziałem 2:1?

Wpisz proporcje 2:1 i długości bloków, które są wielokrotnością sumy proporcji, czyli 3, 6, 9 albo 12. Każdy blok 6 zawiera wtedy 4 przydziały do pierwszego ramienia i 2 do drugiego, w losowej kolejności. Podaj co najmniej dwie długości, np. 6 i 9, żeby nikt nie mógł odgadnąć ostatnich przydziałów w bloku. Generator na tej stronie sprawdza skład każdego bloku i podaje liczebności ramion.

Dlaczego lista z tym samym ziarnem w R wychodzi inna niż na stronie?

Ziarno ustawia tylko punkt startowy generatora liczb losowych, a R i ta strona używają różnych generatorów. R domyślnie korzysta z generatora Mersenne Twister (Matsumoto i Nishimura, 1998), a strona z Mulberry32. Obie listy są poprawne, ale odtworzysz każdą tylko tym narzędziem, którym ją wygenerowano. Dlatego w raporcie zapisz nazwę i wersję generatora oraz zachowaj plik z listą.

Ile miejsc zarezerwować w każdej warstwie listy randomizacji?

Więcej, niż wynika z planu rekrutacji, bo nie wiesz z góry, ile osób trafi do każdego ośrodka czy kategorii. Zapas dobierz do niepewności rozkładu uczestników, a listę kończ pełnym blokiem. Nieużyte miejsca nie szkodzą, a wyczerpana warstwa zmusza zespół do improwizacji. Liczbę warstw ogranicz do kilku, bo przy wielu warstwach i małej próbie nierówności się sumują (Kernan i in., 1999).

Czy listę randomizacji może przygotować badacz, który rekrutuje uczestników?

Nie, jeśli badanie ma ukrycie przydziału. Altman i Schulz (2001) podkreślają, że osoba generująca sekwencję nie powinna kwalifikować ani włączać uczestników, bo znajomość kolejnego przydziału może wpłynąć na decyzję o włączeniu. Listę przygotowuje osoba niezależna, a przydział przekazuje centralny system, apteka albo kolejno numerowane, nieprzezroczyste koperty.

Co wpisać w protokole o liście randomizacji?

Podaj, kto i kiedy wygenerował sekwencję, jakim narzędziem, jaki był rodzaj randomizacji, proporcje, długości bloków i czynniki warstwujące oraz jak ukryto przydział. Tego wymaga CONSORT 2025 (Hopewell i in., 2025). Ziarno, długości bloków i sumę kontrolną listy przechowuje osoba niezależna. W dokumentach dostępnych dla ośrodków podaj je dopiero po zakończeniu rekrutacji.

Powiązane hasła

Przeczytaj też

Przygotowujesz badanie z randomizacją?

Pomożemy dobrać schemat przydziału, przygotować listę randomizacji z dokumentacją, opisać ją w protokole zgodnie z CONSORT i zaplanować analizę z czynnikami warstwującymi, którą obronisz przed recenzentami.

Oferta dla badaczyPorozmawiaj o projekcie

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Altman, D. G., & Bland, J. M. (1999). Statistics notes: How to randomise. BMJ, 319(7211), 703–704. https://doi.org/10.1136/bmj.319.7211.703 ● Otwarty dostęp
  2. Altman, D. G., & Schulz, K. F. (2001). Concealing treatment allocation in randomised trials. BMJ, 323(7310), 446.1–447. https://doi.org/10.1136/bmj.323.7310.446 ● Otwarty dostęp
  3. Efird, J. (2011). Blocked randomization with randomly selected block sizes. International Journal of Environmental Research and Public Health, 8(1), 15–20. https://doi.org/10.3390/ijerph8010015 ● Otwarty dostęp
  4. Hopewell, S., Chan, A.-W., Collins, G. S., Hróbjartsson, A., Moher, D., Schulz, K. F., Tunn, R., Aggarwal, R., Berkwits, M., Berlin, J. A., Bhandari, N., Butcher, N. J., Campbell, M. K., Chidebe, R. C. W., Elbourne, D., Farmer, A., Fergusson, D. A., Golub, R. M., Goodman, S. N., . . . Boutron, I. (2025). CONSORT 2025 explanation and elaboration: Updated guideline for reporting randomised trials. BMJ, 389, Article e081124. https://doi.org/10.1136/bmj-2024-081124 ● Otwarty dostęp
  5. Kahan, B. C., & Morris, T. P. (2012). Improper analysis of trials randomised using stratified blocks or minimisation. Statistics in Medicine, 31(4), 328–340. https://doi.org/10.1002/sim.4431
  6. Kernan, W. N., Viscoli, C. M., Makuch, R. W., Brass, L. M., & Horwitz, R. I. (1999). Stratified randomization for clinical trials. Journal of Clinical Epidemiology, 52(1), 19–26. https://doi.org/10.1016/S0895-4356(98)00138-3 ● Otwarty dostęp
  7. Matsumoto, M., & Nishimura, T. (1998). Mersenne twister: A 623-dimensionally equidistributed uniform pseudo-random number generator. ACM Transactions on Modeling and Computer Simulation, 8(1), 3–30. https://doi.org/10.1145/272991.272995 ● Otwarty dostęp: pełny tekst
  8. Schulz, K. F., & Grimes, D. A. (2002). Generation of allocation sequences in randomised trials: Chance, not choice. The Lancet, 359(9305), 515–519. https://doi.org/10.1016/s0140-6736(02)07683-3

Cytowania BibTeX

@article{altman1999how, author={Altman, Douglas G. and Bland, J. Martin}, title={{Statistics notes: How to randomise}}, journal={BMJ}, year={1999}, volume={319}, number={7211}, pages={703--704}, doi={10.1136/bmj.319.7211.703}}
@article{altman2001concealing, author={Altman, Douglas G. and Schulz, Kenneth F.}, title={{Concealing treatment allocation in randomised trials}}, journal={BMJ}, year={2001}, volume={323}, number={7310}, pages={446.1--447}, doi={10.1136/bmj.323.7310.446}}
@article{efird2011blocked, author={Efird, Jimmy}, title={{Blocked randomization with randomly selected block sizes}}, journal={International Journal of Environmental Research and Public Health}, year={2011}, volume={8}, number={1}, pages={15--20}, doi={10.3390/ijerph8010015}}
@article{hopewell2025consort, author={Hopewell, Sally and Chan, An-Wen and Collins, Gary S. and Hróbjartsson, Asbjørn and Moher, David and Schulz, Kenneth F. and Tunn, Ruth and Aggarwal, Rakesh and Berkwits, Michael and Berlin, Jesse A. and Bhandari, Nita and Butcher, Nancy J. and Campbell, Marion K. and Chidebe, Runcie C. W. and Elbourne, Diana and Farmer, Andrew and Fergusson, Dean A. and Golub, Robert M. and Goodman, Steven N. and Hoffmann, Tammy C. and Ioannidis, John P. A. and Kahan, Brennan C. and Knowles, Rachel L. and Lamb, Sarah E. and Lewis, Steff and Loder, Elizabeth and Offringa, Martin and Ravaud, Philippe and Richards, Dawn P. and Rockhold, Frank W. and Schriger, David L. and Siegfried, Nandi L. and Staniszewska, Sophie and Taylor, Rod S. and Thabane, Lehana and Torgerson, David and Vohra, Sunita and White, Ian R. and Boutron, Isabelle}, title={{CONSORT 2025 explanation and elaboration: Updated guideline for reporting randomised trials}}, journal={BMJ}, year={2025}, volume={389}, eid={e081124}, doi={10.1136/bmj-2024-081124}}
@article{kahan2012improper, author={Kahan, Brennan C. and Morris, Tim P.}, title={{Improper analysis of trials randomised using stratified blocks or minimisation}}, journal={Statistics in Medicine}, year={2012}, volume={31}, number={4}, pages={328--340}, doi={10.1002/sim.4431}}
@article{kernan1999stratified, author={Kernan, Walter N. and Viscoli, Catherine M. and Makuch, Robert W. and Brass, Lawrence M. and Horwitz, Ralph I.}, title={{Stratified randomization for clinical trials}}, journal={Journal of Clinical Epidemiology}, year={1999}, volume={52}, number={1}, pages={19--26}, doi={10.1016/s0895-4356(98)00138-3}}
@article{matsumoto1998mersenne, author={Matsumoto, Makoto and Nishimura, Takuji}, title={{Mersenne twister: A 623-dimensionally equidistributed uniform pseudo-random number generator}}, journal={ACM Transactions on Modeling and Computer Simulation}, year={1998}, volume={8}, number={1}, pages={3--30}, doi={10.1145/272991.272995}}
@article{schulz2002generation, author={Schulz, Kenneth F. and Grimes, David A.}, title={{Generation of allocation sequences in randomised trials: Chance, not choice}}, journal={The Lancet}, year={2002}, volume={359}, number={9305}, pages={515--519}, doi={10.1016/s0140-6736(02)07683-3}}
R