se richiami un document.write in fase di rendering scrivi nel documento
se lo richiami a documento completamente renderizzato sovrascrivi tutto il documento con uno creato al volo che contiene solo quanto scritto da document.write
( = il tuo script non esiste piu', da qui l' errore)

questo e' quello sbagliato
codice:
function caricaBanner() {
   if(!caricato) {
      numimage = Math.round(Math.random()*(banner.length-1));
      document.write(banner[numimage]);
      caricato = true;
   }
   else {
	if(numimage == (banner.length-1)) {
        	numimage = 0;
	}
	else {
		numimage++;
	}
	document.write(banner[numimage]);
   }
   setTimeout("caricaBanner()",3000);
}
prova cosi'
codice:
function caricaBanner() {
   if(!caricato) {
      numimage = Math.round(Math.random()*(banner.length-1));
      document.write('div id="randombanner"'>+banner[numimage]+'</div>');
      caricato = true;
   }
   else {
	if(numimage == (banner.length-1)) {
        	numimage = 0;
	}
	else {
		numimage++;
	}
	document.getElementById('randombanner').innerHTML=banner[numimage];
   }
   setTimeout("caricaBanner()",3000);
}
ciao