We don't "hand them out", people have to buy them. However, short of being convicted of a felony, the right to do so is exactly that -- a right, not to be taken without due process. No-fly lists are wrong enough because they lack accountability and transparency and have already been proven to be used against people who haven't earned it. It is estimated that 1/3 of the people on the list don't belong there, and there are many more cases where someone is mistaken for being on the list and has to jump through hoops to prove that they are not that person. Alas, freedom to travel is not a specifically enumerated right. The right to keep and bear arms is, so such a list would be unconstitutional.
The shooter in this case was investigated twice by the FBI, and there was nothing substantial found. If that was enough to put him on a list, then someone filing false reports about you and causing the FBI to investigate you (and then drop the investigation) would also put you on the list. Unfortunately, the world is full of trolls and people who will abuse the process, so it is a good thing that it is necessary to have a high standard for denying someone's rights. It would require a constitutional amendment to change this, and there are still plenty of state governments sufficiently distrustful of the Federal government to make sure that doesn't happen. The only amendment I'd like to see is to make freedom of travel an enumerated right that cannot be removed without due process. Right now the no-fly list is merely wrong and abusive. I'd like to see it be unconstitutional.
If you want to get rid of all the guns in the country, go back in time almost 240 years and convince the founders not to protect the right to keep and bear arms. Short of that, the genie has long since left the bottle and there's no putting him back in. Since that's not going to happen, all that can be done is to disarm the law-abiding, a situation that will delight those who choose not to hand in their weapons.