import UIKit
var arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
func getRandom(floor : Int, ceiling: Int) -> Int {
return Int.random(in: floor..<ceiling)
}
func shuffleList() {
for value in 0..<arr.count {
let currentRandom = getRandom(floor: value, ceiling: arr.count)
if currentRandom != value {
let temp = arr[value]
arr[value] = arr[currentRandom]
arr[currentRandom] = temp
}
}
}
shuffleList()
print(arr)
In swift you could also use
var
arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
arr.shuffle()
Both will give you similar performance when you measure it using XCTest. Here is a chart to prove it.
![](https://i0.wp.com/redflowerinc.com/wp-content/uploads/2020/02/Screen-Shot-2020-02-12-at-1.13.32-PM.png?resize=702%2C113&ssl=1)
![](https://i0.wp.com/redflowerinc.com/wp-content/uploads/2020/02/Screen-Shot-2020-02-12-at-1.12.08-PM.png?resize=553%2C351&ssl=1)
Leave a Reply