¿Cómo mezclar aleatoriamente una lista List<T> en C#?
¡Hola a todos! Soy un desarrollador principiante de C# y tengo un problema. Necesito mezclar aleatoriamente los elementos de una lista `List`. Estoy escribiendo una aplicación para un juego de cartas y necesito barajar el mazo de cartas.
Tengo una lista `List deck` que lleno con cartas. Intenté usar `Random`, pero no logro mezclar los elementos correctamente.
Aquí está mi código actual:
```csharp
List numbers = new List { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Random rnd = new Random();
// Mi intento de mezclar
for (int i = 0; i < numbers.Count; i++)
{
int randomIndex = rnd.Next(numbers.Count);
numbers[i] = numbers[randomIndex]; // Esto solo copia el valor, no intercambia
}
```
Entiendo que este código es incorrecto — pierdo los valores de los elementos en lugar de intercambiarlos. ¿Podrían indicarme cómo implementar correctamente la mezcla de la lista? Preferiblemente de manera simple y eficiente. ¡Gracias!
*P.D. He oído hablar del algoritmo de Fisher-Yates, pero no estoy seguro.*