05AB1E, 24 23 21 bytes
Assumes there is a noun for each name, as allowed by the challenge.
„'s«I¯ªâI‘ʒl€нË}Ωðý
Explanation
„'s« # append "'s" to all names in the name-list
I¯ª # append an empty list to the adjective-list
â # cartesian product between the lists
Iâ # cartesian product with the noun-list
€˜ # deep flatten each sublist
ʒ } # filter, keep only lists that when
l # converted to lowercase
€н # with only heads kept
Ë # have all elements equal
Ω # pick a valid list uniformly at random
ðý # and join by spaces