Math.ceil(Math.random()*this.immagine)
Queso non mi convince... un numero casuale, moltiplicato per un un altro numero da comunque un numero casuale.
Se non sbaglio random non necessita di arrotondamento.

Se la var partenza è letta solo da all'interno della funzione allora va resa visibile per tutti.

partenza=dati.partenza;
Ma adesso non ricordo se le var in questione sono limitate alla funzione (come se fossero locali).

Però spiegherebbe perchè this.immagine contiene la var scaricata in "dati" e non è NaN