This is not new (dated from september 2013), but as I’m working on a game using procedurally generated level from manually crafted blocks, I’ve come back to study this excellent interactive lessons, from a guy named Darius Kazemi, explaining in detail the algorithm(s) behind Derek Yu‘s excellent Spelunky level generation.
It’s very smart, and since the generation algorithm is coded in JS, it’s all interactive to better understand each level of randomization.
Warning: it only works with Chrome.