The simplest way:
1. Add one or more extra IPs to your dedicated server/vps. You have to assign as many IPs to the server as many nameservers you want to use.
2. Register the nameservers at your registrar to the main and extra ips of your server.
3. Add the corresponding DNS A records for each nameserver at the DNS cluster used by the domain associated with your nameservers.
In this case you could provide your namesers for your users and you or your users won't have to manage the DNS records of each domain/subdomain you create on your server/vps.
However, this case has a disadvantage: If your server or bind (DNS service) running on your server is down then it will make all domain names including email service even if the domain uses 3rd party MX server is down too.
If you decide to use 3rd party DNS service like CloudFlare then you or your user will have to create DNS records (A,CNAME, MX, etc) for the domain/subdomain at CloudFlare every time when a new domain/subdomain is created on your server. To automate this process you can write scripts to add/remove/update DNS records at the external DNS service using hooks:
https://wiki.centos-webpanel.com/action-hooks