randgen
randgen is a tool which generates random bytes using a pseudorandom number generator (PRNG).
Installation
From source
From binaries
The release page contains pre-built binaries for Linux, macOS and Windows.
How to build
Please see BUILD.adoc.
Usage
Basic usage
Generate 1 KiB of random bytes:
Output formats
The following output formats are available:
raw(encode the generated bytes as raw bytes)base64(encode the generated bytes as base64)base64url(encode the generated bytes as URL-safe base64)hex(encode the generated bytes as hex string)
The default output format is raw. To change this, use -f option.
Supported PRNGs and CSPRNGs
Supported PRNGs are:
- ISAAC RNGs (if enabled at compile time)
- Mersenne Twister RNGs (if enabled at compile time)
- PCG RNGs (if enabled at compile time)
- SFC RNGs (if enabled at compile time)
- Xorshift family
- SplitMix64 RNG
- Xorshift RNG (if enabled at compile time)
- xoroshiro RNGs
- xoshiro RNGs
Supported CSPRNGs are:
The default RNG is chacha12. To change this, use -r option.
Providing a random seed
-s option allows you to specify a 64-bit unsigned integer random seed to be
used when creating a new PRNG. If this option is not specified, the RNG seeded
via random data from system sources such as the getrandom system call on
Linux.
Generate shell completion
--generate-completion option generates shell completions to standard output.
The following shells are supported:
bashelvishfishnushellpowershellzsh
Example:
Command-line options
Please see the following:
Source code
The upstream repository is available at https://github.com/sorairolake/randgen.git.
Changelog
Please see CHANGELOG.adoc.
Contributing
Please see CONTRIBUTING.adoc.
License
Copyright (C) 2025 Shun Sakai (see AUTHORS.adoc)
- This program is distributed under the terms of either the Apache License 2.0 or the MIT License.
- Some files are distributed under the terms of the Creative Commons Attribution 4.0 International Public License.
This project is compliant with version 3.2 of the REUSE Specification. See copyright notices of individual files for more details on copyright and licensing information.