The .random extension to UIColor has an error I believe. The algorithm uses arc4random_uniform to choose an entry into a color table. The max value used should be the count of the table -1. Below is the correct version
public static func random() -> UIColor {
let maxValue = UIColorList.count - 1
let rand = Int(arc4random_uniform(UInt32(maxValue)))
return UIColorList[rand]
}