Protest in other ways but don't take money from those that really need it.
You could always donate direct to the charities you want to support. You could set up a standing order for the same amount you would normally spend on the lottery. This has some advantages -
- the charity gets 100% of your donation, not 24% of the cost of your lottery ticket/scratchcard
- the charity knows they will be getting that money regularly and can factor it into their financial planning
- your donation will be unrestricted funds, meaning that the charity can spend it on whatever they need at the time, not have it tied up with a specific project
- the charity will not have had to employ somebody to put together a funding bid - this is a full time job for many small charities.
Obviously your individual £2/week or whatever won't go that far, but if enough people did this instead of buying lottery tickets it could make a big difference.