Why IF doesn't work with Instantiate?

I created a scene when a random integer is generated then it chooses random object and should spawn it. But it doesn’t happen. Why? If I delete if-statement - it works well.
using UnityEngine;
using System.Collections;

public class SpawnLeftEnvironment : MonoBehaviour {

	public GameObject environment1;
	public GameObject environment2;
	public GameObject environment3;
	public GameObject environment4;

	private float counter = 23.5f;
	private float startX1 = 6.53f;
	private float startX2 = 37.61f;

	void Start () {
		InvokeRepeating("SpawnLeftEnv", 0.0f, 1.0f);
	}

	void SpawnLeftEnv(){

		int randomInteger = Random.Range(0,3);
		
		if(randomInteger == 3){
			Instantiate(environment3, new Vector3(startX1 + counter, 21.42f, -6.92f), Quaternion.Euler(0,0,0));
		}

		else if(randomInteger == 4){
			Instantiate(environment4, new Vector3(startX2 + counter, 21.34f, -6.85f), Quaternion.Euler(0,0,0));
		}
		
		counter += 23.5f;
	}
	
	void Update () {
	
	}
}

int randomInteger = Random.Range(0,3);
generates a number that is either 0, 1, or 2.

So, neither

if(randomInteger == 3)

or

if(randomInteger == 4)

will ever be true…