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

Hi,
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> ();
BallStart();
} // 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!