Ho questa porzione di codice che utilizzo per generare un captcha

codice:
<%
    Function CAPTCHA()
        Dim caratteri, codice
        caratteri = ""
        caratteri = caratteri & "0123456789"
        caratteri = caratteri & "abcdefghijklmnopqrstuvwxyz"
        caratteri = caratteri & "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        Randomize()
        Do Until Len(codice) = 7
            carattere = Int((Len(caratteri) * Rnd()))
            codice = codice & Mid(caratteri, carattere, 1)
        Loop
        CAPTCHA = codice
    End Function
    Session("captcha") = CAPTCHA()
%>
Saltuariamente, mi restituisce il seguente errore:

Errore di run-time di Microsoft VBScript (0x800A0005)
Chiamata di routine o argomento non validi: 'Mid'
pagina.asp, line 31

dove alla linea 31 ho questo:

codice:
codice = codice & Mid(caratteri, carattere, 1)
Perchè una volta ogni tanto e non sempre