Es muss nicht daran liegen, aber es ist auf jeden Fall ein Fehler:
Wenn du in einer Schleife von 0 bis Anzahl-1 durch deine Listbox gehst und immer einen Eintrag entfernst, vergisst du dabei, dass durch das Entfernen die darunter liegenden Einträge nach oben rutschen.
Du bearbeitest also nur jeden zweiten Eintrag, und greifst noch dazu nach der Hälfte der Durchläufe mit ungültigen Indices auf die Listbox zu. Da du den Rückgabewert von GetText nicht abprüfst, bekommst du das nicht mal mit. Was dann im weiteren passiert, ist nicht vorauszusagen.
Also: Entweder immer mit Index 0 zugreifen, oder von hinten anfangen.