数组中的随机数不连续两次重复相同的数字?

Poi*_*pps 0 arrays arc4random ios sprite-kit swift

我正在使用Swift和SpriteKit进行游戏,我将对象移动到基于数组的随机位置.

由CGPoints组成的数组:

let easyArray = [CGPointMake(0,0), CGPointMake(126.6,0),   CGPointMake(253.4,0), CGPointMake(0,197.5), CGPointMake(126.7,197.5), CGPointMake(253.4,197.5), CGPointMake(0,395), CGPointMake(126.7,395), CGPointMake(253.4,395)]
Run Code Online (Sandbox Code Playgroud)

我用这个函数生成一个随机数:

func randomNumber(maximum: UInt32) -> Int {

    var randomNumber = arc4random_uniform(maximum)
    while previousNumber == randomNumber {
    randomNumber = arc4random_uniform(maximum)
}
    previousNumber = randomNumber
    return Int(randomNumber)
}
Run Code Online (Sandbox Code Playgroud)

我用它来根据生成的随机数移动对象:

let greenEasy = randomNumberNew(9)
let moveSelector = SKAction.moveTo(easyArray[greenEasy], duration: 0)
selector.runAction(moveSelector)
Run Code Online (Sandbox Code Playgroud)

我在网上做了一些阅读,发现"While"条件应该使得相同的随机数连续两次生成.但它仍然会发生.

任何人都可以帮助我如何使它,所以我没有连续两次获得相同的数字?

B B*_*B B 5

下面的代码不会随机输出相同的数字.

   var currentNo: UInt32 = 0

    func randomNumber(maximum: UInt32) -> Int {

        var randomNumber: UInt32

        do {
            randomNumber = (arc4random_uniform(maximum))
        }while currentNo == randomNumber

        currentNo = randomNumber

        return Int(randomNumber)
    }
Run Code Online (Sandbox Code Playgroud)