Hola:
Faltaba poner el atributo href:
Código:
<html>
<head>
<title>
efecto
</title>
<script type="text/javascript">
function tipoDatos (imagen, descriptor, enlace) {
this.imagen = imagen;
this.descriptor = descriptor;
this.enlace = enlace;
}
var datos = new Array();
datos[0] = new tipoDatos("http://www.pepemolina.com/galeria/fotos/mini/Diapositiva81.jpg", "descripción 1", "http://www.caricatos.net");
datos[1] = new tipoDatos("http://www.pepemolina.com/galeria/fotos/mini/Diapositiva82.jpg", "descripción 2", "http://www.forosdelweb.com");
datos[2] = new tipoDatos("http://www.pepemolina.com/galeria/fotos/mini/Diapositiva52.jpg", "descripción 3", "http://www.tunait.com/javascript");
function azar() {
i = Math.floor(Math.random() * datos.length);
document.getElementById("imagenAzar").src = datos[i].imagen;
document.getElementById("descriAzar").href = datos[i].enlace;
document.getElementById("descriAzar").appendChild
(document.createTextNode(datos[i].descriptor));
}
</script>
</head>
<body onload="azar()">
<img id="imagenAzar" /><a id="descriAzar"></a>
</body>
</html>
Fidelio: Si lo quieres en un frame/iframe, usa esa etiqueta y el atributo sería src.
Saludos