The terms "white noise" and "pink noise" are applied to noise that depends on a parameter. The equation you gave technically isn't noise at all--- it's a real number uniformly distributed between -1 and 1. But I will assume that you are calling the RAND function inside a routine, and that this routine is simulating some system in time, and every time step it adds the random number to the velocity or the acceleration in a differential equation. In this case, the RAND call becomes white noise in the short time-step limit.
It is easy to generate white-noise, because you don't need to know the previous values of the noise to get future values.
The pink noise with a 1/f spectrum is nonlocal, so you need to do an FFT on a long random sequence, divide by $\sqrt{f}$ and FFT back, as DarenW said. This requires you to store the entire sequence of random numbers in memory, and is very tedious. If you use a filter, it will be nonlocal in time, so you still need to store many random values to work with.
You can generate a non-pink version of colored noise by keeping a sum-variable s around in your program. Just let s=s+(2*RAND()-1) (but be careful--- this introduces a slight drift in s because RAND usually can return exactly zero internally, but never exactly 1. You can fix this by keeping a random sign variable around and subtracting the random quantity instead of adding when the sign is negative). The sum value s will have long-time correlations, and it's spectrum is a powerlaw that falls off like $1\over f^2$. Perhaps this will be sufficient for your needs--- it is certainly much easier numerically.