La manera más eficiente de ... Cadena aleatoria única

Necesito insertar de manera eficiente una cadena RANDOM de 5 caracteres en una base de datos y al mismo tiempo garantizar que sea ÚNICO. Generar la cadena aleatoria no es el problema, pero actualmente lo que estoy haciendo es generar la cadena y luego verificar la base de datos si ya existe ... si es así, comienzo de nuevo.

¿Hay una manera más eficiente de hacer este proceso?

Tenga en cuenta que NO quiero usar GUID o cualquier otra cosa que tenga más de 5 caracteres ... DEBO atenerme a 5 caracteres.

PD: No creo que haga una diferencia, pero todas mis cuerdas distinguen entre mayúsculas y minúsculas.

Aquí está la porción de "cadena aleatoria"

    Public Function GetRandomNumbers(ByVal numChars As Integer) As String
    Dim chars As String() = { _
     "A", "B", "C", "D", "E", "F", _
     "G", "H", "I", "J", "K", "L", _
     "M", "N", "O", "P", "Q", "R", _
     "S", "T", "U", "V", "W", "X", _
     "Y", "Z", "0", "1", "2", "3", _
     "4", "5", "6", "7", "8", "9", _
     "a", "b", "c", "d", "e", "f", _
     "g", "h", "i", "j", "k", "l", _
     "m", "n", "o", "p", "q", "r", _
     "s", "t", "u", "v", "w", "x", _
     "y", "z"}
    Dim rnd As New Random()
    Dim random As String = String.Empty
    Dim i As Integer = 0
    While i < numChars
        random += chars(rnd.[Next](0, 62))
        System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1)
    End While
    Return random
End Function

Respuestas a la pregunta(6)

Su respuesta a la pregunta