Non so se e` questo il problema:
randomX = Math.round((Math.random() * (window.document.body.offsetWidth-200)) -1);
In questa espressione puoi avere come risultato -1.
Prova a riconsiderarla cosi`:
randomX = Math.floor(Math.random() * (window.document.body.offsetWidth-200));
(lo stesso per il verticale).

Tra l'altro non vale la pena ricalcolare ogni volta la larghezza e l'altezza: sarebbe meglio, a mio parere, calcolare tali valori una volta per tutte fuori dalla funzione, salvandoli in varibili.

Ciao
Michele