I would like to add a kind of ripple to an array of known values of type double. I point that out because Random.Next / Random.NextDouble() behave different.
Choose a random number (symmetric about zero) for each step between successive numbers. Then, add it to the first, and subtract it from the second:
for(int i=1; i
This should ensure that the sum of the array stays the same (modulo floating point error), while the array elements are all modified.