It's not clear what you are trying to achieve but if you initialize Points also somewhere then the object reference error should not come.
double[] ReturnPoints = new double[Width];
int[] Points = new int[Width];
Or else you have to use ReturnPoints itself where ever you are using Points
for (int i = Width / 2 + 1; i < Width; i++)
{
ReturnPoints[i] = rd.Next(0, (int)ReturnPoints[i - 1]);
}
for (int i = Width / 2 - 1; i > 0; i--)
{
ReturnPoints[i] = rd.Next(0, (int)ReturnPoints[i + 1]);
}