Hola!
Aunque tu pregunta es sobre VB .NET (el cual no manejo mucho) y este es el foro de VB 6 (hay uno de .NET tambien), te doy unas idea:
Podrias usar una variable tipo boolean, global al form o al proyecto que te indique si ya se ha generado la pass.
Ahora, algo mas sencillo seria (usando tu ejemplo:)
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
if not Label1.Visible then
Label1.Text = "tu nombre es: " + TextBox1.Text + "y tu clave es: " + obtenerPassword(6).ToString
Label1.Visible = True
end if
Cuando Label1 ya está visible, el click no generará más la pass...
Saludos!