Perche' la random ritorna sempre valori minori di 0, e moltiplicarlo per 240 significa portarlo ad un valore che non superi 240(che e' il massimo codice nella tabella ASCII).
Per generare tramite la random() valori compresi tra max e min:
Math.ceil(Math.random() * max + min);
Questo codice non e' tanto corretto, perche' nel caso il range sia 10-15, e il valore ottenuto sia 14.6-14.9, la ceil ritorna 15, quindi, nel caso gli estremi del range siano inclusi, usiamo la funzione ceil, altrimenti la floor( Math.floor(3.9) == 3 ):
Math.floor(Math.random() * max + min);

_________________
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GIT s++: a? C++ UL+++ P L+++ E W++ w M Y-- PGP++ tv+ b+ G++ e- r++ z++++**
------END GEEK CODE BLOCK------