I want to know logic over how to select any random numbers up to six between 0 to 8 where if (0,1) or (1,2) or (0,2) got select then the remaining one number out of 0 to 2 shall not be selected again same goes for 3 to 5 series if (3,5) or (3,4) or (4,5) got selected then remaining one number shall not be selected.
So for example in series 0 to 8 six number can be (0,1,3,5,6,8) or (1,2,4,5,7,8) or (0,1,3) or (4,6) etc
This points are kind of spawn points, so if all 0-2 points get fill then path will be blocked for player to move ahead.
Here is what I did, it kind of work but I think it can be improved for flexiblity and performance,
public static int[] getPointsToSpawn(int howManyToSpawn, int tillWhereToSpawn) {
    int[] howMany = new int[howManyToSpawn];
    List<int> randomCOllected = new List<int>();
    for (int i = 0; i < howManyToSpawn; i++) {
        int randomPoint = generateUniqueRandomNumber(0, tillWhereToSpawn, randomCOllected);
        randomCOllected.Add(randomPoint);
        if (randomCOllected.Contains(0) && randomCOllected.Contains(1) ||
                randomCOllected.Contains(0) && randomCOllected.Contains(2)
                || randomCOllected.Contains(1) && randomCOllected.Contains(2)
                ) {
            randomCOllected.Add(0);
            randomCOllected.Add(1);
            randomCOllected.Add(2);
        } else if (randomCOllected.Contains(3) && randomCOllected.Contains(4) ||
                randomCOllected.Contains(3) && randomCOllected.Contains(5)
                || randomCOllected.Contains(4) && randomCOllected.Contains(5)
                ) {
            randomCOllected.Add(3);
            randomCOllected.Add(4);
            randomCOllected.Add(5);
        } else if (randomCOllected.Contains(6) && randomCOllected.Contains(7) ||
                randomCOllected.Contains(7) && randomCOllected.Contains(8)
                || randomCOllected.Contains(6) && randomCOllected.Contains(8)
                ) {
            randomCOllected.Add(6);
            randomCOllected.Add(7);
            randomCOllected.Add(8);
        }
        howMany[i] = randomPoint;
    }
    return howMany;
}
Basically I don't want to generate more than 2 number between 0 to 2 or 3 to 5 or 6 to 8 range.
 
     
     
    