Swift is so-called a type-safe language or statically typed language, as well as many other compiler languages.
That means Swift compiler works denpending on the statically declared types.
The method `randomElement()` is declared as returning `Optional<Wrapped>` (in this case `Optional<String>`), and Swift compiler forces us unwrap it (forced or safely) when we want the wrapped value.
Even when compiler knows that `randomElement()` is used in a context that it returns non-nil value, compiler should not change the return type, which would leads to confusions.
Consider a case using Array of one element.
let names = ["Zoey"]
let theVeryName: String = names[0]
Do you think this make no sense, that we need to subscript with index 0, when it is 100% sure that the Array has only one element ?
Unwrapping is very similar to this.
You need to subscript an Array with index 0 even when 100% sure the Array has only one element, because the type is Array.
You need to unwrap an Optional even when 100% sure the Optional has non-nil value, because the type is Optional.
In the future, some compilers would appear which might be type-safe and smarter, you may study that in sort of laboratory or discuss it in swift.org .