Generando un nodo Spritekit en un momento aleatorio

Estoy haciendo un juego en el que tengo un nodo que se genera y cae desde la parte superior de la pantalla. Sin embargo, quiero hacer que los nodos se reproduzcan a intervalos de tiempo aleatorios entre un período de 3 segundos. Entonces uno se genera en 1 segundo, el siguiente en 2.4 segundos, el siguiente en 1.7 segundos, y así sucesivamente para siempre. Estoy luchando con cuál debería ser el código para esto.

Código que tengo actualmente para el nodo de desove:

    let wait = SKAction.waitForDuration(3, withRange: 2)
    let spawn = SKAction.runBlock { addTears()
    }

    let sequence = SKAction.sequence([wait, spawn])
    self.runAction(SKAction.repeatActionForever(spawn))

El código para mi función addTears () es:

func addTears() {
        let Tears = SKSpriteNode (imageNamed: "Tear")
        Tears.position = CGPointMake(Drake1.position.x, Drake1.position.y - 2)
        Tears.zPosition = 3
        addChild(Tears)

    //gravity
    Tears.physicsBody = SKPhysicsBody (circleOfRadius: 150)
    Tears.physicsBody?.affectedByGravity = true

    //contact
    Tears.physicsBody = SKPhysicsBody (circleOfRadius: Tears.size.width/150)
    Tears.physicsBody!.categoryBitMask = contactType.Tear.rawValue
    Tears.physicsBody!.contactTestBitMask = contactType.Bucket.rawValue
    }

Respuestas a la pregunta(1)

Su respuesta a la pregunta