public void RondaDeCombates() { List <Combate> combates = new List <Combate>(); Random rand = new Random(); List <int> possible = Enumerable.Range(0, Participantes.Count).ToList(); for (int i = 0; i < Participantes.Count() / 2; i++) { int index = rand.Next(0, possible.Count); Competidor p1 = Participantes[possible[index]]; possible.RemoveAt(index); int index2 = rand.Next(0, possible.Count); Competidor p2 = Participantes[possible[index2]]; possible.RemoveAt(index2); Combate c = new Combate(p1, p2); combates.Add(c); } if (possible.Count > 0) { //Solucion temporal a competidores impares //Se debe crear una variable dummy para estas situaciones Combate c = new Combate(Participantes[possible[0]], Participantes[possible[0]]); c.Ganador = Participantes[possible[0]]; combates.Add(c); } this.CombatesActivos = combates; }