public static Game CreateGame() { var players = TableManager.Get <PlayerEntity>(TableData.PlayersTable).ToList(); if (players.Count < TeamPlayerCount) { throw new ArgumentException($"Number of generated players should be greater than {TeamPlayerCount}"); } var captains = TableManager.Get <CaptainEntity>(TableData.CaptainsTable).ToList(); var allPlayers = PlayerGenerator.Generate(players, captains); var shuffled = RandomSelectors.Shuffle(Seeder.Random(), allPlayers).ToList(); var game = new Game(shuffled.Take(TeamPlayerCount), shuffled.Skip(shuffled.Count - TeamPlayerCount)); Save(game); return(game); }