Elección aleatoria de un elemento de una matriz Swift sin repetir

Este código selecciona un color aleatorio de una matriz de colores preestablecidos. ¿Cómo hago para que el mismo color no se elija más de una vez?

var colorArray = [(UIColor.redColor(), "red"), (UIColor.greenColor(), "green"), (UIColor.blueColor(), "blue"), (UIColor.yellowColor(), "yellow"), (UIColor.orangeColor(), "orange"), (UIColor.lightGrayColor(), "grey")]

var random = { () -> Int in
    return Int(arc4random_uniform(UInt32(colorArray.count)))
} // makes random number, you can make it more reusable


var (sourceColor, sourceName) = (colorArray[random()])

Respuestas a la pregunta(5)

Su respuesta a la pregunta