JSFiddle - React, Tailwind, and code Playground

JavaScript

// convert 0-255 -> '00'-'ff'
function decimalToHex (dec) {
  return dec.toString(16).padStart(2, "0")
}

function generateId (len) {
  var arr = new Uint8Array((len || 40) / 2) // make array of 4 bytes (values 0-255)
  window.crypto.getRandomValues(arr)
  return Array.from(arr, decimalToHex).join('')
}
//call function
console.log(generateId(20))