First, a demo for you to play with. To really get a feel for what is going on,
opacity all the way up to 1, and play with the
Perlin noise is "coherent" noise, random noise with a bit of underlying order that gives it a subtle texture. The noise is created by setting up a grid of vectors that push and pull at the points on a surface, creating a collection of self-similar whorls and patterns. Ken Perlin developed this in the late 80's, and it's important enough in computer animation that they gave him an Academy Award for it.
This library only works on browsers that support the canvas element, and even then, really large tile sizes will break under IE 9. To handle this, the library can load an optional background image when attempts to render the noise fail.
More advanced applications of Perlin noise involving iterative application of the results, as well as three and four dimensional renderings that can be used to create animated sequences, are left as an exercise to the reader.
You can find the code and documentation on github.