Avatar ·

¿Cómo mezclar aleatoriamente una lista List<T> en C#?

¡Hola a todos! Soy nuevo en C# y estoy escribiendo una pequeña aplicación para un juego de cartas. Tengo una lista (List) que contiene un mazo de cartas. Necesito mezclar estas cartas aleatoriamente antes de repartirlas, pero no encuentro un método incorporado como List.Shuffle(). Aquí está mi código: ```csharp List deck = new List(); // ... llenar el mazo con cartas ... // ¿Cómo mezclar ahora? Intenté: deck.OrderBy(x => random.Next()).ToList(); // Pero esto devuelve una nueva lista, no modifica la original ``` El problema es que quiero modificar la lista original deck, no crear una nueva. Además, leí que usar Random con OrderBy puede dar una distribución desigual o incluso excepciones si random.Next() devuelve valores iguales para varios elementos. Por favor, indíquenme cómo mezclar correcta y eficientemente un List en el lugar. Preferiblemente con un ejemplo de código. ¡Gracias de antemano! <<>>

Mejor método: algoritmo de Fisher-Yates (Knuth shuffle)

El más