The fault when a computer asks for a DHCP address and then gets one lies with the other device not releasing that address when its lease expires or the router for handing out the lease improperly.
The number one cause of the router handing out wrong addresses is when you reboot the router.
To fix this - determine how long your lease is set using AirPort utility and change the range you are sending out addresses. For example - if you were sharing 192.168.1.1 change things to start sharing from 192.168.1.200 and up. Then once the lease time has passed after this restart - use a network scan tool to find all the devices that have not renewed and adopted 200+ addresses.
Those are your problem children so you can either hand them a static IP or fix their software.
Once you have that, you can return to the range of addresses you wish to lease out.
Or if you want to make a bigger change - switch the Airport to use 10.x or 172.x addressing and really break things for the non-compliant devices.
Note - each device needs to release and renew their address after you reboot, so power off WiFi or restart everything - don't forget about all the printers, internet connected appliance, home automation lights and switches, etc... They tend to be forgotten. If you don't have a network scan tool, look into using http://brew.sh to install
nmap. It's powerful and well updated and runs on many versions of OS X.