RomuDuo is a two-state member of the Romu (Rotate-Multiply) family of pseudo-random number generators designed by Mark Overton. It balances speed and quality using rotation and multiplication operations on two 64-bit state variables. Recommended for general-purpose use, passing PractRand and BigCrush statistical tests.
| Property | Value |
|---|---|
| Category | Random Number Generators |
| Sub-category | Non-Cryptographic PRNG |
| Security status | π Educational Only |
| Complexity | Intermediate |
| Inventor | Mark Overton |
| Year | 2020 |
| Origin | πΊπΈ United States |
| Source | algorithms/random/romuduo.js |
| Parameter | Supported values |
|---|---|
| Seed sizes | 8 bytes (64 bits) to 16 bytes (128 bits) |
| Flag | Value |
|---|---|
IsDeterministic |
Yes |
IsCryptographicallySecure |
No |
Status: π Educational Only
No vulnerabilities are recorded for this implementation.
4 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 β Seed (1,1): First four 64-bit outputs from RomuDuo
| Field | Value |
|---|---|
seed |
01000000000000000100000000000000 |
outputSize |
32 |
input |
null |
expected |
01000000000000004b574c4f803e83d30080a52ba6279859b76f895d29aa8955 |
Vector 2 β Seed (0,1): First four 64-bit outputs from RomuDuo
| Field | Value |
|---|---|
seed |
00000000000000000100000000000000 |
outputSize |
32 |
input |
null |
expected |
00000000000000004b574c4f803e83d300000000000058ba8b12582028b07c07 |
Vector 3 β Seed via SplitMix64(0): First four 64-bit outputs
| Field | Value |
|---|---|
seed |
0000000000000000 |
outputSize |
32 |
input |
null |
expected |
afcd1d7b39a820e27cca66f3b3f1fc552917cf7337129456e29bccc704bef429 |
Vector 4 β Seed via SplitMix64(1): First four 64-bit outputs
| Field | Value |
|---|---|
seed |
0100000000000000 |
outputSize |
32 |
input |
null |
expected |
c15c0289ec2d0a912d43ca4aaebed118d469b2b764d4a9a2985f245643c8a42f |