A random access to-many relation is a to-many relation that has been enhanced to provide random access to the items in the collection.
A to-many relation is made random access by making the GetAtGenerate property for the relation to Checked. This causes a new accessor to be generated:
F* getRole(int i) const;