Hallo,
var zaehler = x.length;
var zufall = Math.round(Math.random()*zaehler);
erzeugt eine Zahl zwischen 0 und zaehler, wobei die kleinste und größte mit halber Wahrscheinlichkeit vorkommen.
zufall = zufall - 1
if(zufall < 0) zufall = 0;
dieser Konstrukt korrigiert zwar den Wertebereich, aber die "0" kommt zu oft, "zaehler-1" zu selten vor. Besser und einfacher wäre:
var zufall = Math.floor(Math.random()*zaehler);
http://de.selfhtml.org/javascript/objekte/math.htm#floor
Gruß, Jürgen