[C#] Random.Range keeps picking the same number

Im making a simple game, Pong. I’m using Random.Range to choose from 0 and 1 to determine which side the ball will go. I notice it keeps going left. There should be a 50/50 chance of it going right or left, but it keeps going left. I even used the Print function on my random.range variable to see what is going on. It just keeps picking 0 over and over again, making the ball go left. I don’t know what is going on.

Here is my code:
private Rigidbody2D rbBall;
private Vector2 Ballmovement;

	void BallStart()
		int direction = Random.Range (0, 1); //choose 0 or 1 for x axis (left or right)
		print (direction);
		if (direction == 0) { //if its 0... 
			int dirLeft = Random.Range (1, 2); //then choose again for y axis (up or down)
			if (dirLeft == 0 { // if it chooses 0 again...
				Ballmovement = new Vector2 (-0.15f, 0.05f); //then the ball goes left and up
			} else {
				Ballmovement = new Vector2 (-0.15f, -0.05f);//otherwise, it goes left and down
		} else { //same thing for the right side
			int dirRight = Random.Range (1, 2);
			if (dirRight == 1) {
				Ballmovement = new Vector2 (1.5f, .5f); // right, up
			} else {
				Ballmovement = new Vector2 (1.5f, -.5f);// right, down

	void Start()
		rbBall = GetComponent<Rigidbody2D> ();
	} // fixed update and rbBall.addforce comes after this, I didn't include it in the script here.

Hope you can help. Thanks for viewing!

The max for the int version of Random.Range() is exclusive.
You want to use Random.Range (0, 2).

Random.Range has two parameters, a minimum number and a maximum number like this: Random.Range(min, max). But the maximum number is not inclusive when the random integer is picked between the range of numbers you want. An example is:

int rand = Random.Range(0, 4);

In this code a random number will be picked between 0 and 3. The number 4 is excluded. What you want is:

int direction = Random.Range (0, 2); //choose 0 or 1 for x axis (left or right)

Hope this helps. Cheers mate!