いくつかの問題があるようです。
まず、通常はリピート中から離れることをお勧めします。そのパラダイムは、単純なwhileループよりもはるかに混乱します。
第2に、ランダマイザは配列の最後の項目を省略しています。私はこの質問にお答えします
var arrayOne : [String] = ["", "", "", "", ""]
func randomizeArray(array : [String]) -> [String] {
var randomizedArray : [String] = []
var copyOfArray : [String] = array
while !copyOfArray.isEmpty {
let arrayCount : Int = copyOfArray.count
let randomElement : Int = Int(arc4random_uniform(UInt32(arrayCount)))
let arraySlice : String = copyOfArray[randomElement]
randomizedArray.append(arraySlice)
copyOfArray.remove(at : randomElement)
}
return randomizedArray
}
print(randomizeArray(array : arrayOne))
5つの要素を持つ配列の場合、問題を簡単に*デバッグできます。 Xcodeでコードをシングルステップ実行すると、問題のある箇所がすぐにわかります。 –
そして、不要な型の注釈を取り除いてください。 –