Douglas Crockford
2018-03-07
Rash64 is a fast but insecure random number generator function. It is an adaptation of Fash64. It hashs a sequence of integers, returning a random number at each step.
This is an implementation in a mythical language.
def prime_11 := 11111111111111111027
def prime_8 := 8888888888888888881
def prime_3 := 3333333333333333271
# The state of the random number generator function is kept in 3 variables.
var counter: uint64
var result: uint64
var sum: uint64
def rash64_seed(seed: uint64) {
counter := seed
result := prime_8
sum := prime_3
}
def rash64() {
var high
var low
high ; low = (result xor counter) * prime_11
counter += 1
sum += high
result = low xor sum
return result
}