Efficient Randomness Generation Techniques for Embedded Systems