Swift version: 5.2
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.
SPONSORED Build better iOS apps, faster. Looking for a great mobile CI/CD solution that has tons of iOS-specific tools, smooth code signing, and even real device testing? Learn more about Bitrise’s iOS-specific solutions.
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.
Link copied to your pasteboard.