Bei der Anmerkung zur Korrektur der Math.round-Variante hat sich ein Fehler in die Formel eingeschlichen:
statt: var x = Math.round(Math.random() * (max - min + 1)) + min - 0.5;
muss es richtig heißen: var x = Math.round(Math.random() * (max - min + 1) - 0.5) + min
Wie es auch im Text vorher beschrieben wird, muss die Subtraktion vor dem Runden stattfinden.