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

38 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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](https://git.add-ideas.de/lotobo/toolbox-portal). 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](docs/ARCHITECTURE.md) and [docs/PRIVACY-SECURITY.md](docs/PRIVACY-SECURITY.md).
## Development
Requires Node.js 22 and npm 11.
```sh
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](THIRD_PARTY_NOTICES.md).