private List <char> GenerateGameCards(GameSize gameSize) { var numberOfCards = gameSize.Height() * gameSize.Width(); var index = _gameBoardRandom.Next(_gameCardsChars.Length); var result = new List <char>(numberOfCards); for (var i = 0; i < numberOfCards / 2; i++) { var c = _gameCardsChars[(index + i) % _gameCardsChars.Length]; result.Add(c); result.Add(c); } return(new Queue <char>(result.OrderBy(i => _gameBoardRandom.Next())).ToList()); }