VB.NET Code:
Private Sub GenerateString(ByVal Control As Control)
Dim ListChars As New List(Of 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", _
"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"})
Dim RandNumb As New Random
Dim random1 As String = ListChars(RandNumb.Next(0, ListChars.Count - 1))
Dim random2 As String = ListChars(RandNumb.Next(0, ListChars.Count - 1))
Dim random3 As String = ListChars(RandNumb.Next(0, ListChars.Count - 1))
Dim random4 As String = ListChars(RandNumb.Next(0, ListChars.Count - 1))
Dim random5 As String = ListChars(RandNumb.Next(0, ListChars.Count - 1))
Dim random6 As String = ListChars(RandNumb.Next(0, ListChars.Count - 1))
Dim random7 As String = ListChars(RandNumb.Next(0, ListChars.Count - 1))
Dim random8 As String = ListChars(RandNumb.Next(0, ListChars.Count - 1))
Dim History As New List(Of String)
Dim GeneratedString As String = random1 & random2 & random3 & random4 & random5 & random6 & random7 & random8
If History.Contains(GeneratedString) Then
Do Until Not History.Contains(GeneratedString)
random1 = ListChars(RandNumb.Next(0, ListChars.Count - 1))
random2 = ListChars(RandNumb.Next(0, ListChars.Count - 1))
random3 = ListChars(RandNumb.Next(0, ListChars.Count - 1))
random4 = ListChars(RandNumb.Next(0, ListChars.Count - 1))
random5 = ListChars(RandNumb.Next(0, ListChars.Count - 1))
random6 = ListChars(RandNumb.Next(0, ListChars.Count - 1))
random7 = ListChars(RandNumb.Next(0, ListChars.Count - 1))
random8 = ListChars(RandNumb.Next(0, ListChars.Count - 1))
GeneratedString = random1 & random2 & random3 & random4 & random5 & random6 & random7 & random8
Loop
End If
Control.Text = GeneratedString
End Sub
And to call this sub to put the generated string in a textbox just do,