private void RandomizeRooms() { List <PuzzleRoom> UnusedRooms = new List <PuzzleRoom>(Rooms); for (int i = 0; i < RoomPuzzles; i++) { int index = Random.Range(0, UnusedRooms.Count); PuzzleRoom room = UnusedRooms[index]; UnusedRooms.Remove(room); Puzzle puzzle = room.SpawnPuzzle(); if (puzzle) { UnsolvedPuzzles.Add(puzzle); } } while (UnusedRooms.Count > 0) { PuzzleRoom room = UnusedRooms[0]; UnusedRooms.Remove(room); room.SpawnRoom(); } }