I know one easy way to do it, though I'm not sure how good it would look. I really have no way to describe it other than in steps:
1. First, you need a counter, I will make it 8-bit and call it _C, the counter starts at 00.
2. Clear your buffer
OuterLoop:
3. Set a pointer to the beginning of the picture buffer
InnerLoop:
4. Take a random 8-bit number, AND it with _C, then OR it with the current data in the picture buffer and store it
5. Rotate _C by one bit (left or right doesn't matter, just keep it consistent)
6. Increase to the next byte in the picture buffer
7. Goto InnerLoop until you are at the end of the buffer
8. Increase _C by 1 (the real _C, not whatever kind of rotated crap you ended up with after the inner loop)
9. Goto OuterLoop as long as _C is not equal to 256 (0)
10. Goto OuterLoop a few more times with _C = 255 just to make sure any stragglers get filled in
That aught to do it. The only thing that will break it is if your random routine isn't truely random.
You might also get interesting results if you randomly rotated _C rather than just rotating it by 1.
Edit:
The second AND is an OR