Au hasard
Au hasard is a random number generator and list picker app for Android (10+). It works fully offline, needs no permissions and collects no data.

Installation
The app is available as an APK.
It’s not currently on F-Droid or Google Play; just get it here, and if you like it, drop me a line.
Certificate SHA-256 fingerprint:
58f0ab46927fe6f188d4d2e4786173c1457cbccb5a346cddfab576c33bf923c9.
Source code (GNU GPL v3+): github.com/UnkindPartition/au-hasard.
What does Au hasard mean?
It’s French for “at random”, pronounced “oh ah-ZAR” (/o a.zaʁ/).
How does it work, exactly?
When the app starts, a 256-bit key is read from the kernel’s random
number generator, /dev/urandom. Before each draw or
shuffle, the key is replaced with the SHA-256 hash of the previous key
and the precise time of your tap. From the current key, the ChaCha20
cipher produces a stream of random 64-bit numbers from which the draws
and shuffles below are made:
- Drawing numbers: rejection sampling (reject the \(2^{64} \bmod n\) smallest values to avoid modulo bias);
- Shuffling lists: the Fisher–Yates algorithm;
- Shuffling numbers: up to 100 numbers are chosen with Floyd’s sampling algorithm, then put in random order with Fisher–Yates.