IndexOutOfRangeException: Array index is out of range.

I copied a script and its not working, please help me.

using System.Collections;
using UnityEngine;

public class Spawner : MonoBehaviour

    public GameObject[] enemies;
    public Vector3 spawnValues;
    public float spawnWait;
    public float spawnMostWait;
    public float spawnLeastWait;
    public int startWait;
    public bool stop;

    int randEnemy;

    void Start()

    void Update()
        spawnWait = Random.Range(spawnLeastWait, spawnMostWait);

    IEnumerator waitSpawner()
        yield return new WaitForSeconds(startWait);

        while (!stop)
            randEnemy = Random.Range(0, 2);

            Vector3 spawnPosition = new Vector3(Random.Range(-spawnValues.x, spawnValues.x), 1, Random.Range(-spawnValues.z, spawnValues.z));

            Instantiate(enemies[randEnemy], spawnPosition + transform.TransformPoint(0, 0, 0), gameObject.transform.rotation);

            yield return new WaitForSeconds(spawnWait);



The error message:


randEnemy = Random.Range(0, 2);


randEnemy = Random.Range(0, enemies.Length);