Files
rand-tools/public
zemion 4f61d001ab
Verify / verify (push) Canceled after 0s
Release Random Tools 0.2.0
2026-09-02 12:28:20 +02:00
..
2026-09-02 12:28:20 +02:00
2026-09-02 12:28:20 +02:00
2026-09-02 12:28:20 +02:00
2026-09-01 02:53:47 +02:00
2026-09-01 02:53:47 +02:00
2026-09-01 02:53:47 +02:00
2026-09-02 12:28:20 +02:00
2026-09-01 02:53:47 +02:00
2026-09-02 12:28:20 +02:00
2026-09-02 12:28:20 +02:00
2026-09-02 12:28:20 +02:00

Random Tools

Generate secure or reproducible random values locally in the browser.

Random Tools is a standalone local-first application in the add·ideas Toolbox. Inputs are processed in the browser and are not uploaded.

Current scope

  • Unbiased local WebCrypto integers and strings plus normal-distribution samples
  • Explicitly non-cryptographic, seeded deterministic generation with reproduction metadata
  • Dice expressions, sampling without replacement, FisherYates shuffling and passphrases
  • Exact weighted sampling without replacement from bounded quoted CSV input
  • Versioned executable seeded recipes for integers, strings, equal-weight samples and weighted samples
  • WebCrypto commitreveal ceremonies with domain-separated commitments, 256-bit private nonces, canonical participant ordering and fail-closed verification
  • UUIDv4, UUIDv7 and random ULID generation
  • Local draws for coin flips, shuffled card deals and unique integer sequences
  • Random calendar dates with weekday and uniqueness controls, exact decimal fractions, and equal-area spherical coordinates

All functionality runs locally. Secure generation never falls back to the seeded source, and deterministic results/recipes are reproducible but not suitable for secrets. Recipes can embed list values, so review them before sharing. Recipes for custom passphrases identify the normalized list by count and SHA-256 but do not embed it, so reproduction requires the same custom input. A commitreveal result proves only that the supplied reveals match the supplied commitments; participants must publish every commitment before any reveal through a channel of their choice. The browser CSPRNG is not physical entropy, and no operation is presented as certified for regulated drawings or gambling. See docs/ARCHITECTURE.md and docs/PRIVACY-SECURITY.md.

Development

Requires Node.js 22 and npm 11.

npm ci
npm run check
npm run test:browser

Release

npm run release:artifact creates a deterministic release/rand-tools-0.2.0.zip and checksum sidecar.

Licence

GPL-3.0-or-later. Runtime dependencies retain their own licences; see THIRD_PARTY_NOTICES.md.