Every unit has equal probability of selection. Implemented using Fisher-Yates shuffle with cryptographically secure randomness. Unlimited row capacity.
01 β Participant data
Copy from Excel/Sheets β comma or tab separated. First row = header.
02 β Sample settings
Ο = n / N
Each unit equally likely
Sampling without replacement
RNG: crypto.getRandomValues (CSPRNG)
03 β Export results
Population N
β
Sample n
β
Fraction f
β
β Load or generate data to begin
Systematic Sampling
Select every k-th unit using fractional interval stepping. Guarantees exactly n samples with equal spacing. Ensure the population list has no hidden ordering patterns.
01 β Participant data
Copy from Excel/Sheets β comma or tab separated. First row = header.
02 β Settings
k = N / n (fractional interval)
r ~ Uniform(0, k) β random start
Selected: βr + iΒ·kβ for i = 0β¦nβ1
Guarantees exactly n samples
03 β Export
Population N
β
Interval k
β
Random start
β
β Load or generate data to begin
Stratified Sampling
Divide population into strata, then sample independently within each. Ensures proportional representation.
01 β Participant data
Must include a strata column (e.g. Region, Gender, School).
Assign participants to treatment arms using rigorous experimental designs.
01 β Participant data
Paste a participant list. Comma or tab separated, first row = header.
02 β Randomization design
03 β Export
β Load data, then randomize
About TagSelect
A browser-based sampling and randomization tool for researchers. All computations happen locally β no data ever leaves your device.
π―Simple Random Sampling (SRS)
Every unit in the population has equal probability Ο = n/N of selection. A Fisher-Yates shuffle is applied to indices; the first n are selected. Sampling is performed without replacement using CSPRNG (crypto.getRandomValues).
πSystematic Sampling
The fractional interval k = N/n is computed. A random start r is drawn from U(0, k). Units at positions βrβ, βr+kβ, βr+2kβ, β¦ form the sample, guaranteeing exactly n samples with even spacing.
ποΈProportional Stratified
The population is partitioned into H strata. Allocation nβ = βn Γ Nβ/Nβ is computed per stratum, with the largest-remainder method distributing residuals to ensure Ξ£nβ = n exactly. No forced minimum β strata may receive 0 if quota rounds to zero.
βοΈEqual Stratified
Each of the H strata receives nβ = βn/Hβ units via largest-remainder, ensuring the total is exactly n. Useful when all strata warrant equal representation regardless of size.
β Complete (Balanced)
Exactly βN/armsβ participants are assigned to each arm; remainder units are assigned round-robin. The full assignment vector is then globally shuffled, ensuring balance.
Block size must be a strict multiple of number of arms. Within each block, arm assignments are randomly permuted. Guarantees balance at every block boundary. Invalid block sizes are rejected with an error.
π¬Stratified Randomization
Complete or block randomization is applied independently within each stratum β the gold standard in RCTs. Block-within-strata option available for covariate-adaptive balance.
πPrivacy & Randomness
All computations happen in your browser. No data is uploaded or stored. Without a seed, crypto.getRandomValues provides cryptographically secure randomness. With a seed, a deterministic LCG is used for exact reproducibility.
TagSelect β developed by Mudasir Mohammed Ibrahim Email: mudassiribrahim30@gmail.com Β· Version 1.0 Β· Research-grade Β· Unlimited row capacity
Citation:
Ibrahim, M. M. (2026). TagSelect: Browser-based Random Sampler and Experimental Randomization Tool [Computer software]. https://github.com/shinyhealthtools/tagselect