Perlin noise is a procedural texturing technique, widely used in movies to produce fire, clouds, and other possible effects, in lieu of their physical counterparts.
It is produced by layering noises of different frequencies, amplitudes and curves on top of each other. This is able to create a seemingly random yet smooth effect, usable for mountainous, rocky heightmaps or smooth plains. The technique is usable for any positive amount of dimensions wanted. This allows three dimensional heightmaps, which vary over time, and three or four dimensional fog maps. (The last being time, again)

Ken Perlin, who this method was named after, won an Oscar for this technique, and developed it after working on TRON in 1983.

A method of implementation for one dimensional noise is:
      First, an array of random values is necessary. Assuming the value of x is a floating point, we must get the two neighbouring values in the random array: array[floor(x)] and array[floor(x + 1)]. Then, we interpolate those two values by the floating point part of x -- (x - floor(x)).
We can extend this method to two dimensions, also, and this requires interpolating between four neighbouring values. Three dimensions requires eight neighbours, and so on. 2n.