One thing I've found in QBasic is to try what I didn't like. For a long time I'd avoid such things at Arrays and Palette because I didn't understand them. After I game them a try and figured out how they work, they are quite a blessing.
The use of the palette feature is extremely easy. It just requires the use of a nice calculator at times.
if you want to change color 1 (blue) to a shade of grey, you would enter in the command:
palette 1, 1973970
And then whenever you used the color 1, you'd get a grey.
The second number comes from this formula
RED + (256 * GREEN) + (65536 * BLUE)
RED, GREEN, and BLUE are the values of that color between 0 and 63. Any higher or lower and you will get an error.
If you make them all the same, you get a shade of grey.
In my example above, 1973970 was the shade of grey with the value of 30.
30 + (256 * 30) + (65536 * 30) = 1973970
That's why a calculator would be nice.
If you want to make a setup that would nicely arrange the colors of grey from darkest to lightest (1 being darkest 16 being lightest)
For i = 1 to 16
palette i, (((4*i)-1) + (256*((4*i)-1)) + (65536*((4*i)-1))
next
Now the color 1 will be a dark grey, and the color 16 will be a very light grey.
the ((4*i)-1) makes it so that when i = 1 ((4*1)-1) = 3
and when i = 16 ((4*16)-1) = 63 (because it can't be equal to 64)
Well, just kinda sift through that, my own math is probably the most complex part, but the basics of the palette function are relatively simple.

And it would easily order your shades of grey from lightest to darkest.
You could also change it to alter the range from light to dark.