Netscan is finding devices very erratically. In some Netscan messages we see one device is present and in others it is not. These are devices that are known to always be powered on and reachable when Netscan is running (i.e. core switches in the network). Running a wireshark while Netscan is run reveals that not all IPs in the subnet specified are being pinged.
Some environments are sensitive to how many ICMP packets can be sent at once. The Netscan code in 2017.1 and later includes a setting in the Netscanner.exe.config file called "SleepTime". Setting this value higher (100 for instance) will increase the timing between threads sending the ICMP packets used by Netscan for Discovering devices. This will yield more consistent results for each Netscan audit.
This will require upgrading to the 2017.1 version to have this option available to adjust.
In some cases this part of the Discovery Gateway is patchable for older versions. If this is needed please contact support for evaluation of your situation. Support has access to the patch files if your situation warrants this (Support: see related internal KB27018).
In the case of a patched version being deployed we highly recommend using a standalone copy to test the patch prior to deployment. (Please see KB27020.)
Newer versions of the OOTB file appear to be missing this setting. If it is missing you should see other settings regarding limiting of threads. Those settings supersede this methodology and prevent the situation described above from occurring.