refactor RdrandEngine to make it simpler and faster