Do test their technical ability, the ability to actually do the job. Fizzbuzz filters a remarkable number of people, so you don't actually have to make it too tough. One of my favourite tests is seeing if someone can reverse a linked list, or do stuff like a FIFO queue with a filter.
You often want to filter overly clever people. So you might play with time. Give them too much time to do a simple implementation, but too little to do a full one.
And then you want to filter for people who just dumbly copy paste answers. This is most fun as a conversation around certain topics. It doesn't have to be a technical challenge. I've had a lot of fun just discussing architecture and tech stacks with applicants. How would you solve this problem? What stack? What's the drawbacks?
At my previous bigco, I did a collaborative linkedlist problems to understand if they could handle null checks, recursion, checking bounds, etc.
Some people clearly had been practicing LL coding stuff so they flew through it in ten minutes, so I'd just change it a little to make sure they understood what they were doing.
Other folks were deathly nervous and would bumble through it but they'd eventually pass, but they got the same 'score' as the people who did it in five minutes.
Some people couldn't pass it no matter how many hints I gave them, they didn't even really understand loops/recursion. So the filter worked there, and that was the point.
It's other rounds that you can assess the depth of their knowledge moreso than coding challenges.