Are you stuck with the signatures as you have them here? If so, betting will require you to store it within a class property if you want to be able to use it later in the betting() method. Otherwise, just modify the betting to accept the user's choice.
I'm not that familiar with Keno. Is the user only allowed to bet an increase on the entire game, or on each item chosen? If its on each item chosen, that'll take a bit more work, but if its just for the game, than you can add that in main. You would then alter the betting signature so that it accepts the number of matches, as well as the amount to bet and calculate from there.
For tracking already used, I would suggest the use of an iterative search based on what you have currently. Write a new method that returns a boolean and accepts an int, int. Then simply run it through for each attempt to place in the array. This would be usable for both the user and computer selections.
As an alternative selection which would require a pretty much entire rewrite (which also means you have signature control), without moving to a collection level you could always work with an boolean array, for both the user and the computer. Then you make use of the key position as the selection instead of the value. Java's arrays are 0 based, so you'd need to select position - 1 for specific numbers, but comparisons wouldn't require that. So if a selection of number 28 is used, that would simply mean that arr is set to true.
Pros of using a boolean to the int[20|7] are:
O(1) search capability. You simply check if arr[chosen - 1] is true
O(1) comparative *for each* of the items. That means you have only 80 loops versus the current 140 loops
Cons of using boolean are:
A bit more memory to use. This would require 2 x 80 x 1 bytes or 160 bytes of memory versus 4b * 20 + 4b * 7 which is only 108 bytes
Would require an entire rewrite of the existing code.
The project at hand doesn't throw enough weight behind either to make it preferred (ie: no matter which you choose the performance difference would be nominal). I myself would look at the order of magnitude on the run of the script which refers to the amount of looping you will perform, and would choose the two boolean 80's since they are more efficient at the cost of memory. Programming is all about the trade offs, for every choice you make, you sacrifice something to get there. You simply want to choose the right balance between efficiency and logical. I don't do small embedded system development, so I typically consider larger chunks of memory to be expendable whilst opting for efficiency or readability.
header('HTTP/1.1 420 Enhance Your Calm');