Random Golf of the Day #3: Integer Partitions
Python 2, 179 bytes
from random import*
m=r=input();i=q=r+1;h=[1]+[0]*q*q;exec&quot;h[i]=h[i+~q]+h[i-i%q*q];i+=1;&quot;*r*q
while r:
 x=random()*sum(h[r*q:r*q-~m]);m=0
 while x&gt;0:m+=1;x-=h[r*q+m]
 print m;r-=m

I used formula (39) from this Knuth extract, which gives the number of partitions of n that have exactly m parts. This happens to equal the number of partitions of n that have m as the maximum element, which is the interpretation I'm using. The elements of the partition are generated from greatest to least. At each stage the formula is reused with the current remainder of n and maximum allowed element.