Nachtrag... hab das mal erweitert oben. Der Fehler tritt scheinbar immer dann auf, wenn die Variable $except alle Zahlen von 1 bis 9 enthält. Macht ja auch Sinn, denn eine der 9 Zahlen muss definitiv eingetragen werden, wenn alle Zahlen ignoriert werden und nicht erlaubt sind wird er nie eine gültige Zahl finden.
Aber ich lass doch jedes mal wenn er in die read() funktion kommt die Variable löschen ?