add crypto.rand_bytes for Darwin and BSD
arc4random_buf is implemented on Darwin, FreeBSD and OpenBSD with the same signature.
Ok just updated the PR to add the error message using CoreFoundation.framework which does not require objective C or any of the vendor stuff. I think we can build on this for os2 later too.
One thing is that copying to an Odin string like this is kinda wasting bytes, for a string I tested that was 38 bytes long in the end it had to allocate a 228 bytes buffer.
For what it's worth, this looks good to me. arc4random is kind of hard to avoid on non-Darwin BSDs, the getentropy systemcall is tailored around seeding a CSPRNG, and we don't have one presently. libc tends to be less of a trashfire there as well...
Rebased this to fix conflicts, still ready for review