¿Cómo generar una cadena aleatoria de letras y números en C#?
¡Hola a todos! Soy un desarrollador C# principiante y me enfrenté a una tarea: necesito generar cadenas aleatorias que consistan en letras (latín, ambos casos) y números. Por ejemplo, para crear contraseñas temporales o identificadores únicos.
Intenté usar `Random` y `StringBuilder`, pero el resultado me desconcierta. Aquí está mi código:
```csharp
public static string GenerateRandomString(int length)
{
Random random = new Random();
string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
StringBuilder result = new StringBuilder(length);
for (int i = 0; i < length; i++)
{
result.Append(chars[random.Next(chars.Length)]);
}
return result.ToString();
}
```
Parece funcionar, pero noté varios problemas:
1. Si llamo al método varias veces seguidas, a veces se devuelven cadenas iguales.
2. No hay garantía de que la cadena contenga al menos una letra y un número (a veces solo se obtienen números).
3. No estoy seguro de qué tan