Generating truly random numbers using a purely digital circuit is not possible - after all, digital logic is supposed to give the same results given the same input! This circuit cheats a little - a 4049 is used in an analog manner, amplifying and digitizing diode noise. Due to imperfections, the output will be "colored", that is, it will have slightly more 0s than 1s or vice versa, enough to cause it to fail being truly random. To solve that, the output is sent through a LFSR to debias it. It is then gated by a counter and two flip flops to frame the data for sending over a serial line. Two outputs of the prescaler counter are used to drive a charge pump in order to obtain enough voltage to get a diode-connected transistor to generate noise.
http://http://i50.tinypic.com/2jdkxoo.jpg
http://http://i47.tinypic.com/1j6hsk.png
Nice work, thanks for submitting!
A common way to remove bias is to read successive pairs of output bits until they differ, then take one -- either always the first or always the second. It has the sad effect of cutting the data rate to slightly under one-quarter (depending on the degree of bias), but it provably removes the bias.
That technique is known as the von Neumann extractor and relies on the absence of autocorrelation, which I would not think is guaranteed in this case.