Aber warum genau muss das denn Lokal definiert sein?
In deinem Falle ist das Problem, dass du "Minimum" innerhalb von "Sort" aufrufst. Hierdurch wird die Schleifenvariable während des "äußeren" Schleifendurchlaufs von der "inneren" Funktion geändert. Dein I in der Sort Funktion entspricht deshalb immer (Anzahl + 1) in jedem Durchlauf.