Diamond-square
From Wikipedia :
The diamond step: For each square in the array, set the midpoint of that square to be the average of the four corner points plus a random value.
The square step: For each diamond in the array, set the midpoint of that diamond to be the average of the four corner points plus a random value.
Depth is how many times the space is subdivided and variation controls how much a random value can fluctuate.