If you want to be able to send transaction, you’ll also need crypto_sign.
Regarding randomness generation, this is usually a vert complex operation especially on IoT.
One issue is that it’s almost impossible to test it is done properly and errors can be catastrophic (see e.g., Debian -- Security Information -- DSA-1571-1 openssl).
What source of randomness and algorithms for randomness generation are you using?
Just for the purpose of people stumbling on this post, I want to stress that rand from stdlib.h is completely insecure and should never be used for randomness generation for crypto-related operations.