var sec = now.getSeconds()
An dieser Stelle erzeugt das Skript eine "Zufallszahl" - keine besonders gute übrigens, nämlich die Sekundenzahl der aktuellen Uhrzeit.
»» return(list[sec % 3])
Und hier bildet es diese Zahl auf einen Wert ab, der als Rest der der Division durch 3 herauskommt - also 0, 1 oder 2.
kann mir jemand sagen wie man es macht das diese "Step by Step" also a) Schritweise 0,1,2 usw. angezeigt wird?
Dazu brauchst Du ein Gedächtnis, also eine Variable außerhalb der Funktion. Und bei jedem Funktionsaufruf erhöhst Du diese Variable um 1, statt wie bisher die Uhrzeit dort abzuspeichern.