Escolher aleatoriamente um item de uma matriz Swift sem repetir

Esse código seleciona uma cor aleatória de uma matriz de cores predefinidas. Como faço para que a mesma cor não seja escolhida mais de uma 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()])

questionAnswers(5)

yourAnswerToTheQuestion