Welcome to the community, @A_Dan! This is definitely doable. The big question, though, is how to deal with names of varying lengths. In your example, you anonymized the first four characters, but what if someone’s name is Bill, or Al? Do you want the formula to mask a minimum of four characters, or perhaps a certain percentage of characters?
If we go with a four-character minimum, this formula does the trick:
REPT("X", MIN(4, LEN(Name))) & RIGHT(Name, LEN(Name) - 4)
Change 4 to some other number if you want more or fewer Xs.
If you want a percentage of the name’s length to be anonymous, this would work:
REPT("X", ROUNDDOWN(LEN(Name) * .5, 0)) & RIGHT(Name, LEN(Name) - ROUNDDOWN(LEN(Name) * .5, 0))
That anonymizes half of the name; replace .5 with another value to change the ratio.