Jump to my Home Page Send me a message Check out stuff on GitHub Check out my photography on Instagram Check out my profile on LinkedIn Check out my profile on reddit Check me out on Facebook

Mitch Richling: Random Number Example Programs

Author: Mitch Richling
Updated: 2023-11-15

Table of Contents

1. Introduction

Good random number generation is easy with all of the tools available to the modern programmer. Here you will find a number of examples showing how to get random numbers from various sources.

Get it all on github: https://github.com/richmit/ex-random/

2. Random Topics. :)

lcgPermPowTwo.cpp
>One way to use an LCG to permute a string.
minStdRandGenC.c, minStdRandGenF.f, minStdRandGenPL.pl, minStdRandGenPY.py, minStdRandGenRB.rb, minStdRandGenCL.clisp
32-bit overflow avoiding implementation of the minimal standard random number generator
smplMinStdRandGenRB.rb & smplMinStdRandGenCL.clisp
Arbitrary precision arithmetic implementation of the minimal standard random number generator via native language support.
gmpLCG.c
Arbitrary precision arithmetic implementation of the minimal standard random number generator via GMP
randFileEx.c, randFileC.c, & randFileC.h
How use files full of random bytes as a random number generator. High quality files are available on the web and on CD-ROM.
randPi.c
Approximate the value of Pi with random numbers (uses GMP)

3. Low Quality Generators (UNIX based)

bsdRandomEx.c
How to make use of the BSD random(), srandom(), and srandomdev() functions.
rand48Ex.c
How to make use of the rand48 group of functions found on many UNIX platforms

4. Other Low Quality Generators

gmpRandEx.c
Simple use of the random functions in the GMP.

5. Low Quality Standard Language Generators

f90Rand.f90
How to use RANDOM_SEED() and RANDOM_NUMBER()in standard Fortran 90
isocRandEx.c
How use the srand() and rand() functions specified in ISO C
clispRandEx.lisp
How to make use of the Common Lisp random number generator.

6. RANLIB (A Trusted Simulation Quality Generator)

ranlibExF.f90 & ranlibM.f90
Relatively complete example illustrating the Fortran version of RANLIB and a Fortran 90 module specifying some interfaces to RANLIB.
ranlibExFC.c, ranlibF.h, & ranlibF.c
C version of ranlibExF.f90 using simple C wrappers for the Fortran library.
ranlibExC.c
Short example showing how to use the C version of RANLIB.

7. Simulation Quality Generators

prngEx.c
Example showing how to use PRNG
boostRandEx.cpp
Example showing how to use boost. See the makefile.
gslRand.c
Example showing how to use GSL. See the makefile.

8. Cryptographic Generators

opensslPRandEX.c
Trivial use of OpenSSL to generate random numbers.