Логика в выражении while несколько сбивает с толку, но вы можете попробовать это:
var array:Array<Int> = []
func finalRand() -> Int {
var num = Int(arc4random_uniform(52)*10+10)
while array.contains(num) {
num = Int(arc4random_uniform(52)*10+10)
}
array.append(num)
return num
}
Таким образом, повторения никогда не будет, и у вас будет меньше кода котла.
Вероятно, есть лучший метод с использованием Sets, но мне жаль, что я мало что знаю об этом.