Simple Random Sampling
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).
Participants are randomly assigned to strata.
02 β€” Settings
Proportional: nβ‚• = ⌊n Γ— Nβ‚•/NβŒ‹ + remainder Equal: nβ‚• = ⌊n/HβŒ‹ + remainder Largest-remainder ensures Ξ£nβ‚• = n exactly Allocation β‰₯ 0 (no forced minimum)
03 β€” Export
← Load or generate data to begin
Experimental Randomization
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 Randomization

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
ResearchGate GitHub Website
Citation:
Ibrahim, M. M. (2026). TagSelect: Browser-based Random Sampler and Experimental Randomization Tool [Computer software]. https://github.com/shinyhealthtools/tagselect