¿Cómo generar una cadena aleatoria de longitud fija en Go?
¡Hola a todos! Acabo de empezar a aprender Go y me encontré con una tarea: necesito generar cadenas aleatorias de longitud fija, por ejemplo, para crear contraseñas temporales o identificadores de sesión. Probé usar el paquete `math/rand` y simplemente seleccionar caracteres aleatorios de un conjunto de letras, pero me encontré con un problema: las cadenas no son completamente aleatorias y a veces incluso se repiten. Aquí está mi código actual:
```go
package main
import (
"fmt"
"math/rand"
)
func main() {
fmt.Println(randString(10))
}
func randString(n int) string {
var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
b := make([]rune, n)
for i := range b {
b[i] = letters[rand.Intn(len(letters))]
}
return string(b)
}
```
El problema es que cada vez que ejecuto el programa obtengo la misma cadena, a menos que llame a `rand.Seed`. Leí que en Go 1.20 `math/rand` se inicializa automáticamente, pero aún así no estoy seguro de que sea el mejor enfoque.