Cats cough up hairballs frequently enough that it's easy to assume they're normal, but in reality they are a symptom of gastroinstestinal dysfunction or a skin disease that is causing excessive hair loss.
Many veterinarians like to think of hairballs in the same way they do vomiting. Is it normal? No, but it is something everyone has to deal with occasionally.
If you're only finding the occasional hairball and want to try some at-home remedies to reduce their frequency, the best way to do this is dietary management. Undiagnosed food allergies or inflammatory bowel disease often play a large role in the formation of hairballs. These conditions cause inflammation in the GI tract and reduce the cat's natural ability to deal with hair that is swallowed. To deal with this, you will need to purchase a limited antigen food from a pet store, and feed it (and nothing else!) to your cat for atleast 8 weeks to know if it's working. If you've tried these over the counter limited antigen diets and they didn't work, try asking your veterinarian what they recommend or distribute.
Another way to deal with hairballs is by imposing a high fiber diet. Fiber can help sweep hair through the digestive system and promote overall digestive health. Some pet food manufacturers have added fiber to their formulas and now make a "hairball" pet food that works well for some cats. If you are looking for a way to introduce some fiber into your cats diet without buying new food, try mixing a little canned pumpkin into their current food!
Lubricant gels that contain waxes, oils, or petroleum jellies are another good option. These gels will coat the hair that is introduced to the GI tract and prevent it from clumping together. While you can't force your cat to eat a hairball lubricant (the stress and potential messiness will outweigh any benefit), you can mix it into their food or apply a little bit to their paw for them to lick off.
And lastly, the simplest and non-dietary related hairball remedy. Brush your cat (assuming they will let you). All hair that you can toss in the garbage is hair that won't eventually to coughed back onto your floor.