I would say cash is best for going into the military. If someone is having a party, it would be nice for one person to collect the cash and then have the recruit deposit it into their bank account afterwards. Then when they arrive at their first duty station they have funds to go buy items for their room or to buy a ticket home in between tech school and their first duty station (like if they are going from school in TX to their first base in Germany, they can pay for a ticket home on the way to visit family).
I personally wouldn't want a lot of gift cards to have to use and keep up with balances. Also, things have been known to be stolen during basic training, such as cash and gift cards regularly go missing. Even when I jointed in 1995, there were people who returned to their locker to have items and cash missing.