Thanks Microbe, you've pointed me in the right direction.
I've made a start and I now can select 11 random players validated against position.
I haven't managed to stop the query selecting duplicate records though

The selected players id's are stored in an array, how would i go about stoping the select command picking any of the players in the array?
Also i've done it by looping the select command however many times i need per position. I've been reading up and i think this can be done better to save server resources using .GetRows() , what do you think?
The code i have so far is below.
Thanks for your help.
<!-- #include file="db.asp" -->
<%Response.Buffer = True%>
<html>
<head>
<style>
p { font-family:verdana; font-size:11px; }
</style>
</head>
<body>
<br>
<p align="center">
<%
' ADO Constant. Dont change this
Const adCmdText = &H0001
' Define variables
Dim query
Dim rs
Dim intRnd
Dim playerId(11)
Dim counter
counter = 0
' Select random Goalkeeper
playernumber = 1
Do until playernumber = 2
' SQL statement
query = "SELECT Play_Id,Play_Name,Play_Position,Play_Price FROM Players_Data WHERE Play_Position='Goalkeeper'"
' Opening database
Set rs = Server.CreateObject("ADODB.Recordset"

rs.Open query, conn, 3, , adCmdText
' Generating random number from total number of records
Randomize Timer
intRnd = (Int(RND * rs.RecordCount))
' Now moving the cursor to random record number
rs.Move intRnd
' Showing the random player
Response.Write "<b>" & rs("Play_Position"

& ":</b> " & rs("Play_Name"

& " £" & rs("Play_Price"

& "million<br />"
' Add player id to array
playerId(counter) = rs("Play_Id"

counter = counter + 1
' Closing the database
rs.Close
Set rs = Nothing
playernumber = playernumber + 1
Loop
' Select random Defenders
playernumber = 1
Do until playernumber = 5
' SQL statement
query = "SELECT Play_Id,Play_Name,Play_Position,Play_Price FROM Players_Data WHERE Play_Position='Defender'"
' Opening database
Set rs = Server.CreateObject("ADODB.Recordset"

rs.Open query, conn, 3, , adCmdText
' Generating random number from total number of records
Randomize Timer
intRnd = (Int(RND * rs.RecordCount))
' Now moving the cursor to random record number
rs.Move intRnd
' Showing the random player
Response.Write "<b>" & rs("Play_Position"

& ":</b> " & rs("Play_Name"

& " £" & rs("Play_Price"

& "million<br />"
' Add player id to array
playerId(counter) = rs("Play_Id"

counter = counter + 1
' Closing the database
rs.Close
Set rs = Nothing
playernumber = playernumber + 1
Loop
' Select random Midfielders
playernumber = 1
Do until playernumber = 4
' SQL statement
query = "SELECT Play_Id,Play_Name,Play_Position,Play_Price FROM Players_Data WHERE Play_Position='Midfielder'"
' Opening database
Set rs = Server.CreateObject("ADODB.Recordset"

rs.Open query, conn, 3, , adCmdText
' Generating random number from total number of records
Randomize Timer
intRnd = (Int(RND * rs.RecordCount))
' Now moving the cursor to random record number
rs.Move intRnd
' Showing the random player
Response.Write "<b>" & rs("Play_Position"

& ":</b> " & rs("Play_Name"

& " £" & rs("Play_Price"

& "million<br />"
' Add player id to array
playerId(counter) = rs("Play_Id"

counter = counter + 1
' Closing the database
rs.Close
Set rs = Nothing
playernumber = playernumber + 1
Loop
' Select random Strikers
playernumber = 1
Do until playernumber = 4
' SQL statement
query = "SELECT Play_Id,Play_Name,Play_Position,Play_Price FROM Players_Data WHERE Play_Position='Striker'"
' Opening database
Set rs = Server.CreateObject("ADODB.Recordset"

rs.Open query, conn, 3, , adCmdText
' Generating random number from total number of records
Randomize Timer
intRnd = (Int(RND * rs.RecordCount))
' Now moving the cursor to random record number
rs.Move intRnd
' Showing the random player
Response.Write "<b>" & rs("Play_Position"

& ":</b> " & rs("Play_Name"

& " £" & rs("Play_Price"

& "million<br />"
' Add player id to array
playerId(counter) = rs("Play_Id"

counter = counter + 1
' Closing the database
rs.Close
Set rs = Nothing
playernumber = playernumber + 1
Loop
%>
</p>
<br /><br />
<%
Dim iLoop
For iLoop = LBound(playerId) to UBound(playerId)
Response.Write playerId(iLoop) & "<br />"
Next
%>
</body>
</html>