Es normal que sea mas lento a medida que agregues mas imagenes, está codificado para precargar en memoria absolutamente todas las imagenes de la lista antes de seguir. Debería modificarse para que solo precargue una imagen elegida aleatoriamente desde la lista que se le suministre y los tiempos de ejecucion bajarían notablemente.
Lamentablemente no soy muy dado con JAVA así que no me atrevo a modificarlo yo mismo, pero sigue buscando o pregunta en algun foro que se dedique a ese lenguaje de programacion para que te lo modifiquen oportunamente o intenta eliminar esta parte de codigo:
CODE
var preBuffer = new Array()
for (i = 0; i < p; i++){
preBuffer[i] = new Image()
preBuffer[i].src = theImages[i]
}