Bitcoin Core currently only support to using RDRAND / RDSEED instruction on x86 architecture when requiring to generate a ultra high quality random numbers. For example, a private key.
https://github.com/bitcoin/bitcoin/blob/master/src/random.h
https://github.com/bitcoin/bitcoin/blob/master/src/random.cpp

ARM later added two new similar instructions as well, RNDR (similar to RDRAND) / RNDRRS (similar to RDSEED).
https://developer.arm.com/documentation/ddi0601/2022-12/AArch64-Registers/RNDR--Random-Number
https://developer.arm.com/documentation/ddi0601/2022-12/AArch64-Registers/RNDRRS--Reseeded-Random-Number

OpenSSL also had a similar feature request on last year. (Implemented)
https://github.com/openssl/openssl/issues/15627
https://github.com/openssl/openssl/pull/15361
https://github.com/openssl/openssl/blob/master/providers/implementations/rands/seeding/rand_cpu_arm64.c

I hope this feature is also available on Bitcoin Core as Bitcoin Core also can using on ARM machine (E.g. A Mac computer using Apple silicon, Raspberry Pi...).
{
#if defined(WIN32)
    HCRYPTPROV hProvider;
    int ret = CryptAcquireContextW(&hProvider, nullptr, nullptr, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT);
    if (!ret) {
        RandFailure();
    }
    ret = CryptGenRandom(hProvider, NUM_OS_RANDOM_BYTES, ent32);
    if (!ret) {
        RandFailure();
    }
    CryptReleaseContext(hProvider, 0);
#elif defined(HAVE_GETRANDOM)
    /* Linux. From the getrandom(2) man page:
     * "If the urandom source has been initialized, reads of up to 256 bytes
     * will always return as many bytes as requested and will not be
     * interrupted by signals."
     */
    if (getrandom(ent32, NUM_OS_RANDOM_BYTES, 0) != NUM_OS_RANDOM_BYTES) {
        RandFailure();
    }
#elif defined(__OpenBSD__)
    /* OpenBSD. From the arc4random(3) man page:
       "Use of these functions is encouraged for almost all random number
        consumption because the other interfaces are deficient in either