Swift version: 5.1
A so-called “fair” random number generator is one that generates each of its possible values in equal amounts and with an even distribution. For example, if you were generating numbers between 1 and 4, you might get 4, 2, 1, 3, but you would never get 4 4 1 4.
GameplayKit has support for fair random number generation using
GKShuffledDistribution. First, add an import for the GameplayKit framework:
Second, create an instance of
GKShuffledDistribution, telling it the lowest and highest values it can generate:
let distribution = GKShuffledDistribution(lowestValue: 1, highestValue: 8)
nextInt() on it as needed to generate numbers. You should get all numbers between 1 and 8 at least once before you see any repeated.
LEARN SWIFTUI FOR FREE I have a massive, free SwiftUI video collection on YouTube teaching you how to build complete apps with SwiftUI – check it out!
Available from iOS 9.0 – see Hacking with Swift tutorial 35
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.