A random integer in an interval, plus an updated seed value, can be obtained as:
randomInteger(ℤ⋯ℤ, randomSeed) : (ℤ, randomSeed)
randomInteger(ℕ⋯ℕ, randomSeed) : (ℕ, randomSeed)
randomInteger(ℕ.nz⋯ℕ.nz, randomSeed) : (ℕ.nz, randomSeed)
Random integers are computed in Pharo code:
randomInteger(min:ℤ ⋯ max:ℤ, seed:ℕ.nz) ⇒ Pharo:"min ensureNumber. max ensureNumber. seed ensureNumber. (LzRandomTerms signature: signature) integerBetween: min and: max seed: seed" | max ≥ min
randomInteger(1 ⋯ 10, seed(1)) ⇒ (8, 42574215097704903886118270442276891296642809153879337352973093820589089894777)
A series of random integers is defined by:
randomIntegers(ℤ⋯ℤ, randomSeed) : RandomSeries(ℤ)
The first item is obtained as:
randomSeriesItem(randomIntegers(interval:ℤ⋯ℤ, seed:randomSeed), 1) ⇒ randomInteger(interval, seed)
Successive items are obtained by iteration:
randomSeriesItem(randomIntegers(interval:ℤ⋯ℤ, seed:randomSeed), n:ℕ.nz) ⇒ randomInteger(interval, second(randomSeriesItem(randomIntegers(interval, seed), n - 1))) | n > 1
randomIntegers(1 ⋯ 10, seed(1))[1] ⇒ 8
randomIntegers(1 ⋯ 10, seed(1))[2] ⇒ 6
randomIntegers(1 ⋯ 10, seed(1))[3] ⇒ 5