Q:

C# Random returning the same value

I'm creating only one instance of random but even so the random number is the same.
       int x, y;
        Random random = new Random();
        // Loop through the images pixels to reset color. 
        for (x = 0; x < image1.Width; x++)
        {
            for (y = 0; y < image1.Height; y++)
            {
                int randomNumber = random.Next(1, 2);
                if (randomNumber != 1) continue;
                Color pixelColor = image1.GetPixel(x, y);
                Color newColor = Color.FromArgb(255, 255, 255);
                image1.SetPixel(x, y, newColor);
            }
        }

A:

You're getting the same number (1) every time, because you're calling Random.Next() with minValue = 1 and maxValue = 2:
Random.Next Method (Int32, Int32)

minValue
The inclusive lower bound of the random number returned.
maxValue
The exclusive upper bound of the random number returned. maxValue must
  be greater than or equal to minValue.

Calling Random.Next(1, 2) will always return 1.
It's not 100% clear what you're trying to achieve, but if you'd like to change only 50% of your colors, you should probably do following:
for (x = 0; x < image1.Width; x++)
{
    for (y = 0; y < image1.Height; y++)
    {
        if (random.Next() % 2 != 1) continue;
        Color pixelColor = image1.GetPixel(x, y);
        Color newColor = Color.FromArgb(255, 255, 255);
        image1.SetPixel(x, y, newColor);
    }
}

