As discussed in How can I securely generate a random number in my smart contract?, it's currently quite hard to get a random number reasonably fast to use in a contract. In situations where you can make all parties do a commit-and-reveal it's OK, but where this isn't practical we're seeing people use some quite nasty solutions, for example trusting random.org (which can cheat undetectably), and also various shades of trust in an oracle service (which can certainly cheat detectably, and undetectably in some edge cases) to tell them what random.org is saying. I've been thinking of some ways to make this process somewhat less nasty, but I'm wondering if it will end up solving itself.
As I understand it Serenity will need random numbers to function, and there's a plan to do a RANDAO-style multi-party commit-and-reveal scheme. Will a by-product of this be to provide a random number that can safely be used fast by contracts?