while random.choice DOES select one item from list but it DOES NOT delete the other elements from the list, you didn't assign a variable to random.choice() which means, your random.choice(horoscopes) DOES NOT hold any significance in the command. (or in other words, the line becomes useless)
horoscopes is still a list, and the embed kwarg in ctx.send won't just take it.
what you can do is re-initialize the horoscopes variable with random.choice(horoscopes) assigned to it and then pass it to embed kwarg
and it's really inconvenient when the code is on an image, from next post the code and not the image along with the traceback
Also, don't forget to regenerate your token.
horoscopes = [embed1, embed2, embed3, embed4, #.....more embed objects]
horoscopes = random.choice(horoscopes)
await ctx.send(embed=horoscopes)