A couple of points:
1) You don't need to create three graphics contexts, in fact it is a bad idea to do that as Graphics contexts are scarce resources. Create one, and use that three times:
int RandomNumber = RandomClass.Next(16, 215);
System.Drawing.Graphics my_graph = this.CreateGraphics();
Point my_point_s1 = new System.Drawing.Point(15, height);
Point my_point_f1 = new System.Drawing.Point(RandomNumber, height);
arrayToSort[i] = RandomNumber - 15;
Point my_point_s2 = new System.Drawing.Point(245, height);
Point my_point_f2 = new System.Drawing.Point(RandomNumber+245, height);
Point my_point_s3 = new System.Drawing.Point(500, height);
Point my_point_f3 = new System.Drawing.Point(RandomNumber+500, height);
my_graph.DrawLine(System.Drawing.Pens.Blue, my_point_s1, my_point_f1);
my_graph.DrawLine(System.Drawing.Pens.Purple, my_point_s2, my_point_f2);
my_graph.DrawLine(System.Drawing.Pens.Red, my_point_s3, my_point_f3);
my_graph.Dispose();
2) Dealing with the first point solves the second: you are responsible for disposing of
all Graphics object you create: If you do not, you will get unpredictable problems later...
3) Don't draw these in a button click event: instead, handle the Paint event and draw them there. Just use the Invalidate method, and it will force a redraw. This also gets rid of both problems from 1 and 2 above, because the paint event hands you the Graphics object as part of the PaintEventArgs parameter, so you don't have to cerate and dispose any of them at all.
If you don't draw these in the Paint event, they will not be redrawn if anything covers the window, or if it is minimised.