Written and maintained by CASRAI Editorial Board
Last updated
Permuted block randomization assigns participants to treatment arms in short blocks, where each block contains the planned allocation ratio and the order inside the block is shuffled at random. It is also called block randomization (or block randomisation in British spelling). After every completed block the arms are exactly equal in size, so the groups stay balanced while recruitment is still under way. The price is predictability, which is why the guidance below also covers variable block size.
This page works through the arithmetic for a two-arm 1:1 trial, shows what block size does to predictability, and gives reporting wording and code. For the wider family of methods see randomization methods in clinical trials.
Definition: what is permuted block randomization?
A permuted block is one random ordering (permutation) of a set of assignments that contains each arm the planned number of times. For a 1:1 trial with arms A and B and a block size of 4, every block holds two A and two B. The schedule is built by drawing one permutation after another until enough assignments exist. ICH E9 (Statistical Principles for Clinical Trials, section 2.3.2) says that randomising subjects in blocks can increase the comparability of the treatment groups, particularly when subject characteristics may change over time, and gives a better guarantee that the groups will be of nearly equal size.
Formula: how many permutations does a block have?
For a 1:1 ratio and block size n (an even number), the number of distinct blocks is
Nperm = n! / ((n/2)! × (n/2)!) = C(n, n/2)
- n is the block size, the number of participants per block.
- n/2 is the number of places given to each arm in a 1:1 block.
- n! is the number of ways to order n distinct items; dividing by (n/2)! twice removes orderings that only swap identical labels.
- Each of the Nperm blocks is drawn with equal probability, 1/Nperm.
The counts for the common even sizes are 2 blocks for n = 2, 6 for n = 4, 20 for n = 6 and 70 for n = 8.
Worked example: block size 4, twenty participants
With n = 4 the formula gives 4! / (2! × 2!) = 24 / 4 = 6 equally likely blocks: AABB, ABAB, ABBA, BAAB, BABA and BBAA. Each is drawn with probability 1/6.
To randomize 20 participants, draw 5 blocks. One possible schedule, generated with a seeded random number generator, is:
| Block | Participants | Assignments | Running A minus B after each participant |
|---|---|---|---|
| 1 | 1-4 | A B B A | +1, 0, -1, 0 |
| 2 | 5-8 | A B A B | +1, 0, +1, 0 |
| 3 | 9-12 | A B A B | +1, 0, +1, 0 |
| 4 | 13-16 | B A A B | -1, 0, +1, 0 |
| 5 | 17-20 | A B B A | +1, 0, -1, 0 |
Check the arithmetic: each block has two A and two B, so after participants 4, 8, 12, 16 and 20 the difference is 0 and the totals are 10 A and 10 B. Inside a block the difference can never exceed n/2 = 2, so at any moment the arms differ by at most 2. The number of different 20-person schedules possible with five blocks of 4 is 65 = 7,776.
Interpretation: block size, balance and predictability
A block makes the arms balanced at the end of each block but makes some assignments inferable. If an enroller knows the block size and sees the earlier assignments in the block, the final place in the block is always certain, and further places are certain once one arm is used up. For a 1:1 trial, averaged over all equally likely blocks, the share of assignments that are fully determined by the earlier assignments in the block is:
| Block size | Possible blocks | Expected determined assignments per block | Share of all assignments |
|---|---|---|---|
| 2 | 2 | 1.00 | 50.0% |
| 4 | 6 | 1.33 | 33.3% |
| 6 | 20 | 1.50 | 25.0% |
| 8 | 70 | 1.60 | 20.0% |
For example, with size 4 the block ABBA starts A, B, B, so the fourth place must be A. A block starting A, A forces the last two places to be B, B; that happens in 2 of the 6 blocks (AABB and BBAA), which is where the 1.33 comes from (1 for the last place, plus 1/3 for the third place). These figures are computed by enumerating all blocks and apply only when the block size is known to the person enrolling.
ICH E9 states the trade-off directly: block lengths should be sufficiently short to limit possible imbalance, but long enough to avoid predictability towards the end of the sequence in a block. It adds that investigators and other relevant staff should generally be blind to the block length, and that using two or more block lengths, randomly selected for each block, can achieve the same purpose. This is variable block size. ICH E9 also says details that facilitate predictability, such as block length, should not be contained in the trial protocol.
Assumptions and common mistakes
- Fixed small blocks in an unblinded trial. The table above shows why: a known block size of 2 or 4 makes a third to a half of assignments inferable. Randomly varying the block length, kept from the enrolling staff, is the remedy ICH E9 describes.
- Treating balance as the goal in itself. Blocks guarantee near-equal group sizes at the end of each block; they do not remove the need to conceal the sequence from whoever enrolls participants. See blinding and masking in clinical trials for the separate issue of who knows the assignment.
- Ignoring centres in multicentre trials. ICH E9 recommends a separate random scheme for each centre, either by stratifying by centre or by allocating several whole blocks to each centre.
- Too many stratification factors. ICH E9 notes that more than two or three stratification factors is rarely necessary, and that stratification factors should be accounted for later in the analysis. Each stratum runs its own blocks, so many strata leave many incomplete blocks. Compare stratified randomisation and minimisation.
- Not being able to reproduce the schedule. ICH E9 says the randomisation schedule should be reproducible; record the software, seed and settings with the statistician who generated it.
How to report it
CONSORT 2010 item 8b (sequence generation) asks authors to report the type of randomisation and details of any restriction, such as blocking and block size. ICH E9 addresses the trial protocol, CONSORT addresses the trial report, so the two documents carry different levels of detail. See CONSORT 2010 for the full checklist. A methods-section sentence can follow this pattern, with the bracketed parts replaced by what was actually done:
Participants were randomly assigned 1:1 to [arm A] or [arm B] using permuted blocks of [block sizes used], generated by [software and version] by [role, for example an independent statistician]. Randomization was stratified by [factors, if any].
In the results, report the number randomized to each arm, as the CONSORT flow diagram does. For a trial-design overview see randomized controlled trial (RCT).
How to generate permuted blocks in Excel, R or Python
Excel
Put the block number in column A with =INT((ROW()-2)/4)+1 (rows 2 to 41 give ten blocks of 4), a random helper in column B with =RAND(), then in column C assign A to the two highest helper values within each block:
=IF(COUNTIFS($A$2:$A$41,A2,$B$2:$B$41,">"&B2)<2,"A","B")
Copy the formulas down, then paste the results as values, because RAND() recalculates every time the sheet changes.
R
set.seed(2026)
n_blocks <- 5
schedule <- unlist(replicate(n_blocks, sample(c("A","A","B","B")), simplify = FALSE))
schedule
Python
import random
def permuted_blocks(n_blocks, size=4, arms=("A", "B"), seed=2026):
rng = random.Random(seed)
schedule = []
for _ in range(n_blocks):
block = list(arms) * (size // len(arms))
rng.shuffle(block)
schedule += block
return schedule
print(permuted_blocks(5))
For variable block size, choose each block’s size at random from a set such as {4, 6} before shuffling it. In a real trial the schedule should be produced by someone independent of enrolment and kept from the enrolling staff.
FAQ
What is the difference between block randomization and simple randomization?
Simple randomization assigns each participant independently, so group sizes can drift apart by chance, especially in small trials. Block randomization forces equal group sizes at the end of every block.
What block size should I use?
ICH E9 gives the rule rather than a number: short enough to limit imbalance, long enough to avoid predictability near the end of a block. Mixing two or more block sizes, kept from the enrolling staff, serves both aims.
Why use a variable block size?
A fixed, known block size lets an observer infer some assignments, as the table above shows. Randomly selecting the length of each block, which ICH E9 describes, removes that pattern.
Is permuted block randomization the same as stratified randomization?
No. Blocks control balance over time; stratification controls balance across a participant characteristic such as centre. The two are usually combined by running permuted blocks within each stratum, as the REDCap allocation-table guide illustrates for software implementation. The wider design choices are covered in designing a clinical trial.
Sources
- ICH E9, Statistical Principles for Clinical Trials, section 2.3.2 Randomisation. https://database.ich.org/sites/default/files/E9_Guideline.pdf (checked 2026-10-29).
- CONSORT 2010 statement, checklist item 8b. https://pmc.ncbi.nlm.nih.gov/articles/PMC2844940/ (checked 2026-10-29).
- Permutation counts, the determined-assignment shares and the 20-participant schedule are CASRAI calculations by enumeration of all balanced blocks, not figures from the sources above.








