I found this picture

When you zoom in to any part of the image, the background looks a bit noisy/grainy. See pixels around "violent violet" label:

I'm trying to understand how to achieve the same effect programmatically?
I was trying to change pixel color in rgb space by adding tiny gaussian offset, but it still doesn't look nearly as natural as in the image above:

I feel like I'm missing something very simple, but I don't even know where to start? How is this done in general?
Maybe you can play with this jsbin to show me how this is done: https://jsbin.com/fatecojolo/edit?js,output ?