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 Building and maintaining in-app subscription infrastructure is hard. Luckily there's a better way. With RevenueCat, you can implement subscriptions for your app in hours, not months, so you can get back to building your app.
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.