Performance of Combination lookup
I would change your table layout. If you used something like:

(LineId int, BallSequence tinyint, BallVal int)

The combination of (LineId, Ballsequence) would be your PK.

Then your query would be:

SELECT COUNT(*) 
FROM 
( SELECT 1
  FROM dbo.Lines 
  GROUP BY LineID
  HAVING SUM( CASE WHEN 
              BallVal IN (@ball1, @ball2, @ball3, @ball4, @ball5, @ball6) 
              THEN 1 ELSE 0 END) &gt;= @matchCount
) AS t ;


...and it could be covered by an index in BallVal.