javascript – ¿Como puedo hacer que al presionar un boton, se ejecute la función a la que este mismo llama pero después de un tiempo?


Pues bien, estoy haciendo un piedra, papel o tijeras en javascript y tengo 3 botones (piedra, papel y tijera). Quiero que al ejecutar alguno de esos tres botones la función espere un tiempo para ejecutarse y que aparezca un simbolo que ande girando al cargar, lo intenté hacer de muchas formas pero fueron inutiles.
A continuación les muestro mi código HTML:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Piedra papel o tijera</title>
    <script src="Piedra, papel o tijeras.js"></script>
    <link type="text/css" rel="stylesheet" href="CSS/Ceeseese.css">
    <script src="https://kit.fontawesome.com/60b90458fd.js" crossorigin="anonymous"></script>
  </head>
  <body>
    <div class="Texto">
      <p><strong>Elige tu opcion</strong></p>
    </div>
    <div class="Btns">
    <a href="#" class="Botones" onclick="Opcion(0)"><i class="fas fa-hand-scissors"></i>Tijera</a>
    <a href="#" class="Botones" onclick="Opcion(1);"><i class="fas fa-hand-rock"></i>Piedra</a>
    <a href="#" class="Botones" onclick="Opcion(2);"><i class="fas fa-hand-paper"></i>Papel</a>
  </div>
  </body>
</html>

Y ahora mi javascript:

function Opcion(miOpcion) {
  var nombre = ("Tijera","Piedra","Papel")
  var cpu = Math.floor((Math.random() * 3))
if(miOpcion === 0 && cpu === 2 || miOpcion === 1 && cpu === 0 || miOpcion === 2 && cpu === 1)
{
  alert("Jugador: " + nombre(miOpcion));
  alert("Contrincante: " + nombre(cpu));
  alert("Ganaste, sos un capo")
}
else if(miOpcion === 0 && cpu === 1 || miOpcion === 1 && cpu === 2 || miOpcion === 2 && cpu === 0)
{
  alert("Jugador: " + nombre(miOpcion));
  alert("Contrincante: " + nombre(cpu));
  alert("Perdiste, sos un pete")
}
else {
  alert("Jugador: " + nombre(miOpcion));
  alert("Contrincante: " + nombre(cpu));
  alert("Empataste")
}
}