Gerando um link aleatório por meio de Javascript / HTML

Estou tentando criar um script que permita exibir um hiperlink que redireciona o usuário para um URL aleatório selecionado em quatro sites. Até agora, criei uma matriz para os sites e uma função que tenta gerar o URL aleatório. Para meu propósito, é importante que a saída ("Clique para ir para um site aleatório") não seja um botão, mas uma sequência simples (clicável).

Ao executar o código, recebo um erro de referência "o link não está definido (na linha 18)". Eu pensei que tinha definido o link no código comvar link = 'http://' + links[randIdx];, por isso não sei ao certo por que estou recebendo esse erro e como corrigi-lo.

Alguém que pudesse dar uma olhada no meu código para ver onde cometi um erro e como corrigi-lo?

<a href="javascript:openSite()">Click to go to a random site</a>
<script>
function openSite() {
var links = [
              "google.com",
              "youtube.com",
              "reddit.com",
              "apple.com"]

            openSite = function() {
              // get a random number between 0 and the number of links
              var randIdx = Math.random() * links.length;
              // round it, so it can be used as array index
              randIdx = parseInt(randIdx, 10);
              // construct the link to be opened
              var link = 'http://' + links[randIdx];
              };
              
    return link;
    
    document.getElementById("link").innerHTML = openSite();
}
</script>

questionAnswers(3)

yourAnswerToTheQuestion