Muffin Tins
Difficulty - Easy
Upside-Down: Scatter kibble in between the raised bumps and your dog will have to nudge the food around from all angles to finish their meal/snack
Upside-Up: Place treats or food in the tins and place tennis balls (or similar) on top so your dog has to remove the balls to get the food.
Dispensers
Difficulty - Easy to Hard, depending on intricacy
This type of toy can be made with just about anything: water bottles, milk jugs, plastic jars, PVC pipe, even shoeboxes. Cut or drill several holes in your item, making sure the holes are just a bit larger than the treats you intend to put in. You can increase the difficulty by putting some empty toilet paper or paper towel rolls inside for the treats to roll around.
A version of this can be made with a tennis ball if you cut a slit or drill holes and fill with treats.
Socks and Old Clothes/Cloths
Difficulty - Medium
Fill or wrap a sock or piece of old clothing with food or treats. Layer more socks/clothes around it by either loosely tying or rolling up the pieces together.
Boxes (in boxes in boxes in boxes!)
Difficulty - Hard
Hide some treats in small boxes (shoe-boxes, jewelry boxes, etc.) and hide the boxes inside one another. This make get a little messy if your dog decides to tear up any of the boxes, but you can place lids on lightly and turn boxes without lids upside-down to make the nudging and discovering easier.
Frozen
Difficulty - Easy
Freeze broth, peanut butter, water with treats, or anything you’d like in an ice cube tray and your dog will be busy and happy, especially on a hot day!
Combos
Have fun with it! you can combine most of these ideas together. For example, tie a couple socks around a dispenser that you have made, place something frozen in your muffin tins, or have sock and dispenser prizes inside the boxes.
Don’t forget to always monitor your dog with new toys to make sure they don’t ingest anything inedible.