How to make product free for some customers and paid for others?

I would attempt offer your product at normal price, but have a variation on it that reduces the price to 0, and limit the stock quantity to 50 for that variation.

If that doesn’t work, create two products, one at normal price, one for free, again, limit the product in-stock quantity, and then hide any products that are sold out.