Você está estudando PHP ?
porque eu não sei nada sobre PHP e consegui só com Js.
Algumas coisas estavam erradas na sua sintaxe e também mudei um pouco a lógica.
<html>
<head>
<title>Link Aleatorio</title>
<meta charset="utf-8"/>
<script>
var enderecos = [
"http://www.terra.com.br",
"http://www.google.com.br",
"http://jbonline.terra.com.br",
"http://www.lycos.com",
"http://br.yahoo.com",
"http://www.altavista.com",
"http://www.hotbot.com",
"http://www.buscopio.com",
"http://oglobo.globo.com",
"http://www.excite.com",
"http://br.cade.yahoo.com",
"http://www.mercadolivre.com.br",
"http://br.weather.com",
"http://www.buscape.com.br",
"http://www.msn.com",
"http://www.astrolabio.net"];
function linkAleatorio(){
aleat = Math.random() * enderecos.length;
aleat = Math.floor(aleat);
console.log(enderecos[aleat]); // <- apenas para testar :D
document.getElementById("iframe").src = enderecos[aleat];
}
</script>
</head>
<body onload="linkAleatorio()">
<!--<a href="javascript:linkAleatorio()">LinkAleatorio</a>-->
<iframe id="iframe" width="100%" height="100%" frameborder="0" scrolling="yes" allowfullscreen>
</iframe>
</body>
</html>
Toda vez que o documento for carregado, a função link aleatorio será chamada: <body onload="linkAleatorio()">
e esta irá atribuir um novo src para o elemento com id = 'iframe' .
Assim funciona, mas só com alguns links, pois acho que outros não podem ser carregadas dentro de Iframe (não sei).
mas tinha um window.open() escrito no seu código, então o que eu acho é que você não quer que os sites sejam carregados no iframe, mas sim em uma nova aba.
nesse caso não há necessidade da existencia de um iframe e todas as paginas irão abrir corretamente, porém o navegador por padrão bloqueia PopUps, então voce terá de permitir este tipo de ação (vai aparecer uma notificação).
Mas caso voce esteja estudando PHP, essa não é minha praia, mas também deve dar pra fazer com ele.