If that's what you want to do, you may want to consider using an array, not a list. By default, arrays are projected as a child table for SQL. You can find more details on the differences in the Working with Collections article, and the part I'm referring to specifically is the Default Projection of Array Properties section.
You could also change the storage default parameter of your list to "array", which is also described in the above article.
I think you're looking for $RANDOM.
Here's the documentation.
I think you're looking for the %ArrayOfObjects class for this one. You'd create your objects with all of their value, ID, and type properties, then you'd create the array:
set array = ##class(%ArrayOfObjects).%New()
Then you set values of the array using the SetAt method:
Then to access a particular value, you use the GetAt method, then dot syntax to access the object's properties:
set myid = array.GetAt("down").id
Here's the %ArrayOfObjects class documentation.
Log in or create a new account to continue