How to access a random element in a dictionary in Swift
Swift 4.2+ (Xcode 10+) introduces two simple possibilities.
Either randomElement:
let randomVal = myDict.values.randomElement()
Or randomElement:
let randomVal = myDict.randomElement().value
Swift 5+ (Xcode 12+) introduces randomise Dictionary key also
let randomVal = myDict.randomElement()?.key
You have to cast some things around, but this seems to work.
var dict:[String:Int] = ["A":123, "B": 234, "C": 345]
let index: Int = Int(arc4random_uniform(UInt32(dict.count)))
let randomVal = Array(dict.values)[index] # 123 or 234 or 345
Basically, generate a random index value between zero and the total item count. Get the values of the dictionary as an array and then fetch the random index.
You could even wrap that in an extension for easy access.