In ogni caso la sintassi
codice:
Indice = Math.floor(Math.random() * ColPag.length);
è sbagliata: il metodo random() restituisce un valore compreso tra 0 e 1 (es. 0.001254, 0.2354, ecc...) che, per esserti utile, deve essere moltiplicato *10 (minimo) al fine di ottenere un numero compreso tra 0 e 9.999999 a cui poi toglierai la parte decimale.

Per il resto, prova questo codice:
codice:
<html>

<head>
	<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
	<title>Prova</title>
	<script language="JavaScript">
	<!--
	// Crei un array di colori 
	myImageArray=new Array(); 
	myImageArray[0]="#FF0000"; 
	myImageArray[1]="#00FF00"; 
	myImageArray[2]="#0000FF"; 
	myImageArray[3]="#FFFFFF"; 
	myImageArray[4]="#000000"; 
	myImageArray[5]="#555555"; 
	myImageArray[6]="#BBBBBB"; 
	myImageArray[7]="#FF5555"; 
	myImageArray[8]="#55FF55"; 
	myImageArray[9]="#5555FF"; 

	function changeBackground() { 
		var p=Math.round(Math.random()*10); // assegna alla variabile p un valore random compreso tra 0 e 9 
		var bckgrd=myImageArray[p];
		window.alert(bckgrd);
	} 

	window.document.onload=changeBackground(); 
	// -->
	</script>
</head>

<body bgcolor="#ffffff">
	<table>
		<tr>
			<td id="pippo" bgcolor="&{bckgrd};%">ciao</td>
		</tr>
	</table>
</body>

</html>