Generador de números aleatorios de Golang cómo sembrar correctamente

Estoy tratando de generar una cadena aleatoria en Go y aquí está el código que he escrito hasta ahora:

package main

import (
    "bytes"
    "fmt"
    "math/rand"
    "time"
)

func main() {
    fmt.Println(randomString(10))
}

func randomString(l int) string {
    var result bytes.Buffer
    var temp string
    for i := 0; i < l; {
        if string(randInt(65, 90)) != temp {
            temp = string(randInt(65, 90))
            result.WriteString(temp)
            i++
        }
    }
    return result.String()
}

func randInt(min int, max int) int {
    rand.Seed(time.Now().UTC().UnixNano())
    return min + rand.Intn(max-min)
}

Mi implementación es muy lenta. Siembra utilizandotime trae el mismo número aleatorio durante un tiempo determinado, por lo que el bucle se repite una y otra vez. ¿Cómo puedo mejorar mi código?

Respuestas a la pregunta(6)

Su respuesta a la pregunta