Synchronous randombytes function that works in node, the browser & react-native!
npm install @consento/sync-randombytes

sync-randombytes is a polyfill for crypto.randomBytes that works in node, browsers, react-native
_(with support for versions < 0.60)_ and expo.
npm i sync-randombytes --save
You can use it like an other randomBytes function by calling:
``javascript`
const randomBytes = require('sync-randombytes')
const randomUint8Array = randomBytes(new Uint8Array(16))
- React-native < 0.60 does not support crypto.randomBytes and you need a custom solution to implement a sync random method
- Metro bundlers complain when you try to use react-native-randombytes as it's dependencies try to require('crypto') - which is not available in react-native.
- It uses window.crypto.getRandomBytes if available.
- If 'crypto' can be "required" it will use
- from node > 6.13: crypo.randomFill - or a polyfill that implements it using crypto.randomBytes for node < 6.13
- .. else it will use seedrandom
- with a randomseed from the native environment.
- if not available: with a custom random-seed if expo is available. Random quality degraded
- else the default random-seed if. Random quality degraded
with some source code adopted from react-native-randombytes`