用于生成至少为2的随机数的函数

I am looking to generate a series of random numbers that have a difference of at least 2 from the previous number that was generated. I thought that a simple function that would call itself would be the way to go - see code below...

function getRandomLength($previous){
    $x = rand(1,12);

    if(abs($x - $previous) > 2){
        return $x;
    } else {
        getRandomLength($previous);
    }
}

For whatever reason, this is not working out the way that I had hoped it would. Any help would be appreciated.

Thanks.

And for those wondering why I want random numbers that are slightly different, I'm building a deck. I need to cut the decking boards and I don't want the joint to line up, or have any perceivable pattern to them, hence, I turn to my trusty random number generator to help out...

Two problems here:

function getRandomLength($previous){
    $x = rand(1,12);

    if(abs($x - $previous) > 2){

First problem is here - you use > 2 when you meant >= 2, e.g. if the difference is two or more then it's fine.

        return $x;
    } else {
        getRandomLength($previous);

Second problem is here - you call the method again, but you do not return the result of calling it, so the result of the method will be an un-useful null.

Also, you should not code the method to be recursive, it should be iterative, as it doesn't need recursive logic.

    }
}

Since you need an offset of at least 2, pick a random number starting from 0 and add 2 to it. Since it's an offset, you add it to the previous value (but I'm sure you could figure that out).