TarotCards24

Transparent product methodology

How TarotCards24 Selects Random Cards

The exact client-side method TarotCards24 uses to select cards without replacement, choose reversals and protect question privacy.

Published 2026-10-17 · Version 1.0 · Editorial and technical review; no native-speaker review is claimed.

Current implementation: interactive spread pages select cards in the browser. Version 1.0 replaces Math.random() with crypto.getRandomValues() on 85 pages. Question text is not part of the random seed.

Selection algorithm

  1. Copy the selected deck into a working pool.
  2. Generate a Web Crypto random number in [0, 1).
  3. Multiply by the current pool length and take the integer index.
  4. Remove the selected card, preventing duplicates in the same spread.
  5. For methods using reversals, generate a separate value for orientation.
values = new Uint32Array(1); crypto.getRandomValues(values); random = values[0] / 4294967296; index = Math.floor(random * pool.length);

Claims and limits

ClaimStatus
Client-side selection without replacement.Verified in deployed code.
Stronger and less predictable source than Math.random.Technical property; it does not make Tarot predictive.
Equal intended probability at each draw from the remaining pool.True for the formula, subject to browser implementation.
Fixed-future prediction.Not claimed.

Privacy boundary

GA4 receives tarot_spread_complete only after analytics consent, with spread ID, deck ID, card count, language and page path. The question, card names and interpretation are excluded.

Auditability

The implementation is versioned as /assets/tarot-random-v1.js. Random draws are intentionally not reproducible from a public seed.