#x86_64 machine language for Linux, 15 19 17 1716 bytes
L1:
48 0f c7 f0 rdrand %rax
f3 48 0f b8 c0 popcnt %rax,%rax
3c 1a cmp $0x1a,%al
7d f3 jge L1
8d 4004 41 lea add 0x41(%rax) $0x41,%eax%al
c3 retq
#include<stdio.h>
#define TEST "\x48\xf\xc7\xf0\xf3\x48\xf\xb8\xc0\x3c\x1a\x7d\xf3\x8d\x40\x41\xc3""\x48\xf\xc7\xf0\xf3\x48\xf\xb8\xc0\x3c\x1a\x7d\xf3\4\x41\xc3"
int main(){
int hist[26]={0};
for(int i=0;i<10000000;i++){
hist[ ((int(*)())TEST)() - 'A' ]++;
}
for(int i=0;i<26;i++){
printf("%c %d\n", 'A'+i, hist[i] );
}
}