A semi-random source of data is the block hash.
While it can be manipulated by the miner producing a block any change to the block will require looking for another block hash. Since a solved block is worth ~$500 right now there is an economic disincentive for a miner to try and "game" the block hash. Obviously you need to consider that risk vs the cost of an attack. Using a block hash to protect a game where max prize is $2,000 is probably fine. Using a block hash to determine the winner of the next power ball ($150 mil) is probably not a good idea.
![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif)
Remember the higher order bytes of a block hash are not random (mostly zero to meet difficulty target) so you should use the low order ones.
I'm sorry I don't quite understand. Please elaborate. Let's say a user sends a coin to an address, is there some value that I can use either based on that transaction or on that transaction's block that the user can't predict in advance?