Swift version: 5.6
Modern Swift code will use Swift’s own shuffle()
and shuffled()
methods, but sometimes you might find code that does it by hand using arc4random_uniform()
or similar.
Nate Cook wrote a simple shuffle()
extension to arrays that implements the Fisher-Yates shuffle algorithm in Swift. Here's the code:
extension Array {
mutating func customShuffle() {
for i in 0 ..< (count - 1) {
let j = Int(arc4random_uniform(UInt32(count - i))) + i
swapAt(i, j)
}
}
}
BUILD THE ULTIMATE PORTFOLIO APP Most Swift tutorials help you solve one specific problem, but in my Ultimate Portfolio App series I show you how to get all the best practices into a single app: architecture, testing, performance, accessibility, localization, project organization, and so much more, all while building a SwiftUI app that works on iOS, macOS and watchOS.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 2.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.