CHI is DoB-based, plus 4 numbers (and beyond the DoB inclusion, not related to your NI at all):
DDMMYY{random(2);}{even_odd($gender);}{checkbit(integer);}I think the English/Welsh/IoM NHS number is "fully" random instead (no idea how it's generated, but IIRC it doesn't include DoB).