I want to add random characters to the file name as below:
$zipname = 'adcs_RAN-CHARACTERS-HERE.zip';
When you build the name, go ahead and insert whatever random characters you want. Say for example you wanted to include a somewhat readable timestamp (down to the second), you could do it like this:
$zipname = 'adcs_' . date('YmdHis') . '.zip';
Do note that in the header line you need to include the variable name:
header("Content-Disposition: attachment; filename='$zipname'");
I want to delete the file after the user downloaded the file.
This gets trickier. The problem is you can't know for sure when the user has finished downloading the file. I would use another script to cleanup the files periodically (e.g. scheduled as a cron job). Or each time you are about to create a new zip file, you could delete any old ones first. Or just use the temp/tmp directory on the system which will be cleaned up whenever that happens.