Prueba esto:
Código PHP:
$imagenes = mysql_query("SELECT COUNT(*) FROM imagenes");
$sql = "SELECT * FROM imagenes WHERE id = '".rand( 0 , $imagenes-1 )."'";
$imagenfinal=mysql_fetch_array(mysql_query($sql));
echo '<a href="javascript:foto(\''.$imagenfinal["link"].'\')">';
echo "
<img border='0' src='".$imagenfinal['link']."' width='170' height='158'>
</a>
";
Esto deberia funcionarte, siempre y cuando todas las imagenes tengan un id que comience en 0 y sean correlativos. Lo mejor es definir en mysql el id como un campo autoincremental.