Loading a scene after a random amount of time.

I have a simple code that generates a random number then loads a scene based on the number generated

public class RandomGenerator : MonoBehaviour

{
  
    public int Number;

    public void RandomGenerate()
    {
        Number = Random.Range(1, 22);  
    }
    private void Update()
    {
        if ((Number == 1) || (Number == 2))           
        {
            SceneManager.LoadScene("Shuffle");
        }

I want to add a random delay before the scene is loaded say once the number has been generated wait 5 to 20 seconds before loading the chosen scene.

Thank you for any help.

You can use a coroutine:

using System.Collections;

public class RandomGenerator : MonoBehaviour
{
    public int Number;

    public void RandomGenerate()
    {
        Number = Random.Range(1, 22);
        StartCoroutine(LoadScene(Number));
    }

    IEnumerator LoadScene (int sceneNumber)
    {
        float secondsToWait = Random.Range(5, 20);
        yield return new WaitForSeconds(secondsToWait);

        if ((sceneNumber == 1 || sceneNumber == 2))
        {
            SceneManager.LoadScene("Shuffle")
        }

        // etc.
    }
}